一个C语言求解二元一次方程根,以下是我在VC6.0中写的代码,编译通过,但是运行时就出问题了,例如输入a=2,b=2,c=4时,运行结果就是“方程有两个解,x1=..,x2=...” 方程只有一个解x=..",一看就知道这

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 06:03:52

一个C语言求解二元一次方程根,以下是我在VC6.0中写的代码,编译通过,但是运行时就出问题了,例如输入a=2,b=2,c=4时,运行结果就是“方程有两个解,x1=..,x2=...” 方程只有一个解x=..",一看就知道这
一个C语言求解二元一次方程根,
以下是我在VC6.0中写的代码,编译通过,但是运行时就出问题了,例如输入a=2,b=2,c=4时,运行结果就是“方程有两个解,x1=..,x2=...” 方程只有一个
解x=..",一看就知道这明显是错误的,但是我实在不知编写哪里有问题了,可能是if 与else的匹配问题,小弟初次自学,希望各位大侠高手赐教了,
#include
#include
main()
{
printf("请输入三个系数:\n");
float a,b,c,q,x1,x2,x;
scanf("%f%f%f",&a,&b,&c);
q=b*b-4*a*c;
if (q>0)
x1=(-b+sqrt(q))/(2*a);
x2=(-b-sqrt(q))/(2*a);
printf("方程有两个解,x1=%f,x2=%f \n",x1,x2);
if (q=0)
x=-b/(2*a);
printf("方程只有一个解,x%f,\n",x);
if (q
忽略a=0 ,b=0的情况

一个C语言求解二元一次方程根,以下是我在VC6.0中写的代码,编译通过,但是运行时就出问题了,例如输入a=2,b=2,c=4时,运行结果就是“方程有两个解,x1=..,x2=...” 方程只有一个解x=..",一看就知道这
代码奉上:
楼主好像错在if(q = 0) 这句上,应该为q==0,q=0话就是赋值了,除非你赋的值为0,否则一直问真,注意点就好了.还有写if( ){ .} else if( ){ . } else { }这些语句的加括号啊~~~~~~~··
#include
#include
int main()
{
printf("请输入三个系数:\n");
float a,b,c,q,x1,x2,x;
scanf("%f%f%f",&a,&b,&c);
q=b*b-4*a*c;
if (q > 0)
{
x1=(-b+sqrt(q))/(2*a);
x2=(-b-sqrt(q))/(2*a);
printf("方程有两个解,x1 = %f,x2 = %f \n",x1,x2);
}
else if (q == 0)
{
x=-b/(2*a);
printf("方程只有一个解,x = %f,\n",x);
}
else
printf("方程无解!\n");
return 0;
}

代码奉上:
楼主好像错在if(q = 0) 这句上,应该为q==0,q=0话就是赋值了,除非你赋的值为0,否则一直问真,注意点就好了。还有写if( ){ ......} else if( ){ ..... } else { }这些语句的加括号啊~~~~~~~··
#include
#include
int main...

全部展开

代码奉上:
楼主好像错在if(q = 0) 这句上,应该为q==0,q=0话就是赋值了,除非你赋的值为0,否则一直问真,注意点就好了。还有写if( ){ ......} else if( ){ ..... } else { }这些语句的加括号啊~~~~~~~··
#include
#include
int main()
{
printf("请输入三个系数:\n");
float a,b,c,q,x1,x2,x;
scanf("%f%f%f",&a,&b,&c);
q=b*b-4*a*c;
if (q > 0)
{
x1=(-b+sqrt(q))/(2*a);
x2=(-b-sqrt(q))/(2*a);
printf("方程有两个解,x1 = %f,x2 = %f \n",x1,x2);
}
else if (q == 0)
{
x=-b/(2*a);
printf("方程只有一个解,x = %f,\n",x);
}
else
printf("方程无解!\n");
return 0;
}

收起

#include
#include
void main()
{
float a,b,c;
float x1,x2;
float x3,x4;
float k1,k2,k3;
printf("please input:a,b,c");
scanf("%f%f%f",&a,&b,&c)...

全部展开

#include
#include
void main()
{
float a,b,c;
float x1,x2;
float x3,x4;
float k1,k2,k3;
printf("please input:a,b,c");
scanf("%f%f%f",&a,&b,&c);
k1=b*b;
k2=4*a*c;
k3=sqrt(b*b-4*a*c);
if(fabs(a)<=1e-6)
{
printf("the input is error\n");
return;
}
if(k1>k2)
{
x1=(-b+k3)/(2*a);
x2=(-b-k3)/(2*a);
printf("x1=%.2f,x2=%.2f",x1,x2);
}
else if(k1==k2)
{
x1=x2=(-b+k3)/(2*a);
printf("x1=x2=%.2f",x1);
}
else
{
x3=-b/(2*a);
x4=sqrt(4*a*c-b*b)/(2*a);
printf("x1=%.2f+%.2f i\n",x3,x4);
printf("x2=%.2f-%.2f i\n",x3,x4);
}
}给点赞助!

收起