当前位置: 代码迷 >> C语言 >> 这个程序哪错了
  详细解决方案

这个程序哪错了

热度:328   发布时间:2007-08-06 16:44:16.0
这个程序哪错了
这个程序哪错了,是一元二次方程求根程序
main()
{float a,b,c;
scanf("%f %f %f",&a,&b,&c);
d=b*b-4*a*c;
if(d>=0)
{x=(-b+sqrt(d))/(2*a);
y=(-b-sqrt(d))/(2*a);
printf("%f\n",x);
printf("%f\n",y);
}
else
printf("no");
}
----------------解决方案--------------------------------------------------------
d没有声明
----------------解决方案--------------------------------------------------------
没有定义d
----------------解决方案--------------------------------------------------------
同时没有定义x,y没有
#include<math.h>
----------------解决方案--------------------------------------------------------
额。。。。对,还是楼上细心,我没往下看
----------------解决方案--------------------------------------------------------
d,x,y都没有定义

main()
{float a,b,c,d,x,y;
scanf("%f%f%f",&a,&b,&c);
d=b*b-4*a*c;
if(d>=0)
{
x=(-b+sqrt(d))/(2*a);
y=(-b-sqrt(d))/(2*a);
printf("%f\n%f\n",x,y);
}
else
printf("no");
}
----------------解决方案--------------------------------------------------------
怎么有人发差不多的帖??你们一个班的??http://bbs.bc-cn.net/viewthread.php?tid=160328
----------------解决方案--------------------------------------------------------
忽忽,时间差不多耶,不过偶是沙发
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,disc,x1,x2,realpart,imagpart;
scanf("%f,%f,%f",&a,&b,&c);
printf("the equation:");
if(fabs(a)<=1e-6)
printf("is not a quadratic\n");
else
{
disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
printf("has two equal root:%8.4f\n",-b/(2*a));
else
if(disc>1e-6)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("has distinct real root:%8.4f and %8.4f\n",x1,x2);
}
else
{
realpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
printf("%8.4f+%8.4fi\n",realpart,imagpart);
printf("%8.4f-%8.4fi\n",realpart,imagpart);
}
}
}
正好编过同一类型的,比较完整的,发上来大家一起看看.

[此贴子已经被作者于2007-8-7 0:55:54编辑过]


----------------解决方案--------------------------------------------------------
以下是引用windydfl在2007-8-6 16:44:16的发言:
这个程序哪错了,是一元二次方程求根程序
main()
{float a,b,c;
scanf("%f %f %f",&a,&b,&c);
d=b*b-4*a*c;
if(d>=0)
{x=(-b+sqrt(d))/(2*a);
y=(-b-sqrt(d))/(2*a);
printf("%f\n",x);
printf("%f\n",y);
}
else
printf("no");
}

/*注意头文件,日后注意养成良好的书写程序格式习惯,便于程序的维护和修改*/
#include<math.h>
int main(void) /*C标准格式,此格式可以在任何C编译器中通用*/
{
float a,b,c,d,x,y; /*缺少定义*/
scanf("%f%f%f",&a,&b,&c); /*此处不用加空格*/
d=b*b-4*a*c;
if(d>=0)
{
x=(-b+sqrt(d))/(2*a);
y=(-b-sqrt(d))/(2*a);
printf("%f\n",x);
printf("%f\n",y);
}
else
printf("no");
return 0;
}


----------------解决方案--------------------------------------------------------
  相关解决方案