虽然分析似乎无法避免存储到delta' delta的值。没有被阅读......我的循环的哪一部分不起作用?为什么?
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c;
float delta;
printf("a=");
scanf("%f", &a);
printf("b=");
scanf("%f", &b);
printf("c=");
scanf("%f", &c);
float x, x1, x2;
delta=((b*b)-(4*a*c));
if("delta==0")
{
x=((-b)/(2*a));
printf("x=%f \n", x);
}
else if("delta>0")
{
x1=((-b+sqrt(delta))/(2*a));
x2=((-b-sqrt(delta))/(2*a));
printf("x1=%f i x2=%f \n", x1, x2);
}
else printf("Nie ma w zbiorze liczb rzeczywistych rozwiazania tego rownania.\n");
return 0;
}
答案 0 :(得分:0)
第一件事,if("delta==0")
在“”内部将被视为地址的任何内容如果(地址)表示为真,则删除双引号。
if(delta==0)
// some code
else if (delta > 0)
// some code
第二件事,你正在比较(==)一个浮动&amp;一个整数,所以要注意比较不同操作数的行为。