这哪有问题?我不会找
# include <stdio.h># include <math.h>
int main(void)
{
int a = 1;
int b = 2;
int c = 3;
float delta;
float x1;
float x2;
delta = b*b - 4*a*c;
if(delta>0)
{
x1 = (-b + sqrt(delta) / (2*a);
x2 = (-b - sqrt(delta) / (2*a);
printf("该一元二次方程有两个解, x1 = %f, x2 = %f\n", x1, x2);
}
else if (delta = 0)
{
x1 = (-b) / (2*b);
x2 = x1;
printf("该一元二次方程有两个解, x1 = x2 =%f\n", x1);
}
}
上面有两个错误
一delta = b*b - 4*a*c;
类型错误delta是float类型 而右边的都是int 整形你需要转换下 类型
二 x1 = (-b + sqrt(delta) / (2*a);
x2 = (-b - sqrt(delta) / (2*a);
括号 没有成对编写差括号
{:9_240:} 这应该是你要的代码
# include <stdio.h>
# include <math.h>
int main(void)
{
int a = 5;
int b = 4;
int c = 9;
float delta;
float x1;
float x2;
delta = (float)(b*b - 4 * a*c);
if (delta>0)
{
x1 = (-b + sqrt(delta) / (2 * a));
x2 = (-b - sqrt(delta) / (2 * a));
printf("该一元二次方程有两个解, x1 = %f, x2 = %f\n", x1, x2);
}
else if (delta = 0)
{
x1 = (-b) / (2 * b);
x2 = x1;
printf("该一元二次方程有两个解, x1 = x2 =%f\n", x1);
}
} 基本如2楼所说,不过还有一个严重错误:
else if (delta = 0)改为 else if (delta == 0)
基本上,2L所说的错误。。。你都可以在编译器的错误提示里看出来 仰望天上的光 发表于 2015-5-2 12:37
基本如2楼所说,不过还有一个严重错误:
else if (delta = 0)改为 else if (delta == 0)
基本上,2L所说 ...
好厉害,我居然没发现 {:9_240:}(好羞射) 仰望天上的光 发表于 2015-5-2 12:37
基本如2楼所说,不过还有一个严重错误:
else if (delta = 0)改为 else if (delta == 0)
基本上,2L所说 ...
那。。。“ = ”和“ == ”的区别是什么? :lol:,还有一个错误是 最后x1=(float)(-b/(2*a)) :lol: 应该是(float)(-b)/(2*a). else if(delta=0)应改成else if(delta==0);判断里面不应该是赋值语句而是判断语句
页:
[1]