אלגוריתם לפתירת משוואה ריבועית (תודה לכולם!!!!!!!!) - עמוד 2 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

אלגוריתם לפתירת משוואה ריבועית (תודה לכולם!!!!!!!!)


bykeking

Recommended Posts

עשית %f?

אממ... מה? :nixweiss:

כמו שאמרתי קודם, האזהרה "warning C4996: 'scanf' was declared deprecated" קיימת רק בקומפיילרים חדשים שתומכים ב- safe CRT.

אתה יכול לקרוא ב- MDSN על "Security Enhancements in the CRT" בקשר לזה.

MDSN זה mdsn.com? כי לא מצאתי שם כלום...

מה שאני לא מבין זה למה אני מקבל את האזהרה על scanf רק כשאני משנה את הפרמטרים לdouble :bash::s07:

תודה לכולם!!!

// 4.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}

#include <stdio.h>
#include <math.h>

int main()
{
double a, b, c;
double delta;
printf("please enter A, B, C: ");
scanf("%d%d%d", &a, &b, &c);

/*are they any solution?*/
if (a == 0 && b == 0 && c != 0)
{
printf("there is no solution!\n");
return 0;
}
/*find the number of solutions*/
else if (a == 0 && b == 0 && c == 0)
{
printf("infinite number of solutions\n");
return 0;
}
/*simple equasion?*/
else if( a == 0)
{
printf("x = %.2lf\n", (double) -c / b);
return 0;
}
/*find delta*/
delta = b*b - 4*a*c;
/*if delta is positive there two solutions*/
if(delta > 0)
{
printf("x1 = %.2lf\n", (-b + sqrt((double)delta))/(2*a));
printf("x2 = %.2lf\n", (-b - sqrt((double)delta))/(2*a));
return 0;
}
/*if delta is 0 there is one solution*/
else if(delta == 0)
{
printf("x = %.2lf\n", (double) -b/(2*a));
return 0;
}

/*if delta is negative, solution is a complex numb3r*/
else if(delta < 0)
{
printf("sorry, solution is a complex numb3r... \n");
return 0;
}
return 0;
}

wtf??? עכשיו ניסיתי את זה שוב ואין אזהרה... wtf? :s05: :silly:

קישור לתוכן
שתף באתרים אחרים

^ סבבה, תודה!

עוד דבר, גיליתי שאם אני עושה f5 + ctrl פעם ראשונה אני מקבל שגיעות על scanf ואחרי זה אם אני עושה את זה עוד פעם אין שום בעייה חח wtf?

תודה לכולם, אין יותר בעיות :xyxthumbs:

קישור לתוכן
שתף באתרים אחרים

Ctrl + F5 = קימפול והרצה של הקוד שלך.

מה שאתה מקבל על ה-scanf הוא אזהרה ולא שגיאה (warning ולא error).

ההבדל: שגיאה אומרת שהקומפיילר לא הצליח לקמפל את הקוד שלך, ולכן גם לא יכול להריץ אותו. אזהרה אומרת שהקומפיילר הצליח לקמפל את הקוד, אבל זיהה משהו "לא בסדר" לדעתו, והוא מזהיר אותך לגביו.

לכן, בפעם הראשונה שאתה מקמפל, הקומפיילר מזהה את הבעייה, ומזהיר אותך לגביה. קובץ ה-executable נוצר בכל מקרה. בפעם הבאה, הוא לא מנסה בכלל לקמפל (מכיוון שהוא לא זיהה שינוי בקוד). קובץ ה-executable שנוצר בקימפול הקודם רץ. הקומפיילר בכלל לא עובד, וזו הסיבה שאתה לא רואה את האזהרה.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...