C语言改错题

2025-04-04 07:34:48
推荐回答(2个)
回答1:

改的地方在////////////后说明,你自己对照看。

int main(int argc,char *argv[]){
double a, b, c, d;
scanf("%lf %lf %lf", &a, &b, &c);
d = b * b - 4 * a * c; /* 调试时设置断点 */
if(a==0){///////a = 0改成a==0
if(b == 0){
if(c == 0)
printf("参数都为零方程无意义\n");
else
printf("a和b为0 c不为0 方程不成立\n");
}
else
printf("x = %0.2f\n", -c/b);
}
else
if(d >= 0){/* 调试时设置断点 */  ///////这里加{ 
printf("x1 = %0.2f\n", ( -b + sqrt(d)) / (2 * a));
printf("x2 = %0.2f\n", ( -b - sqrt(d)) / (2 * a));
}///////这里加}
else{
printf("x1 = %0.2f + %0.2fi\n", -b / (2 * a), sqrt(-d) / (2 * a));
printf("x2 = %0.2f - %0.2fi\n", -b / (2 * a), sqrt(-d) / (2 * a));
}
return 0;
}

回答2:

Not An Equation

#include
#include
int main()
{
float a,b,c,d;
scanf("%f%f%f",&a,&b,&c);
if(a==0)
{
if(b==0)
{
if(c==0)
printf("Zero Equation");
else
printf("Not An Equation");
}
else //考虑化为一元方程的情况
printf("%.2f",-c/b);
}
else
{
d=b*b-4*a*c;
if(b==0) //b=0的时候,-b会输出-0.00,所以要加这一句
b=-b;
if(d>0)
printf("%.2f\n%.2f",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
else if(d==0)
printf("%.2f",(-b/2/a));
else
printf("%.2f+%.2fi\n%.2f-%.2fi",-b/2/a,sqrt(-d)/2/a,-b/2/a,sqrt(-d)/2/a);
}
return 0;
}