עבור לתוכן

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

Featured Replies

פורסם

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

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

פורסם
  • מחבר

עשית %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 שנוצר בקימפול הקודם רץ. הקומפיילר בכלל לא עובד, וזו הסיבה שאתה לא רואה את האזהרה.

ארכיון

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

דיונים חדשים