C高手请进

jasmine 2011-03-08 01:28:31
这是我在课本上看到的用来求解a*x*x+b*x+c=0方程的程序
我照着书上的键入计算机
结果显示错误
求C高手帮忙修改哈



#include <stdio.h>
#include <math.h>
void main()
{
float a,b,c,disc,x1,x2,relpart,imagpart;
scanf("%f,%f,%f",&a,&b,&c);
printf("The equation");
if(fabs(a)<=1e-6)
printf("is not a quafratic\n");
else
{
disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
printf("has two equal roots:%8.4\n",-b/(2*a));
else
if(disc>1e-6)
{
x1=(-b+sqrt(disc))/(2*a));
x2=(-b-sqrt(disc))/(2*a));
printf("has two equal roots:%8.4fand%8.4f\n",x1,x2);

}
else
{
realpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
printf("has complex roots:\n");
printf("%8.4f+%8.4fi\n",realpart,imagpart);
printf ("%8.4f-%8.4fi\n",realpart,imagpart);
}
}
system("pause");
}
...全文
88 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jasmine 2011-03-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 c395565746c 的回复:]
x1=(-b+sqrt(disc))/(2*a));
x2=(-b-sqrt(disc))/(2*a));
这两句都少一个左括号或者多一个右括号
改为:
x1=((-b+sqrt(disc))/(2*a));
x2=((-b-sqrt(disc))/(2*a));

x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
[/Quote]


多谢了
「已注销」 2011-03-08
  • 打赏
  • 举报
回复
x1=(-b+sqrt(disc))/(2*a));
x2=(-b-sqrt(disc))/(2*a));
这两句都少一个左括号或者多一个右括号
改为:
x1=((-b+sqrt(disc))/(2*a));
x2=((-b-sqrt(disc))/(2*a));

x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
jasmine 2011-03-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 c395565746c 的回复:]
把错误贴出来
[/Quote]
错误 567a6d~1.c 18: 语句缺少';'在 main 函数中
错误 567a6d~1.c 19: 语句缺少';'在 main 函数中
*** 编译出现 2 个错误 ***
东风无眠 2011-03-08
  • 打赏
  • 举报
回复
错误4:缺少stdlib.h
东风无眠 2011-03-08
  • 打赏
  • 举报
回复
哥实在是离职交接蛋疼才来看你这贴的。
这东西都是自己该调试的,这是基本素质!!
错误1:第二个else的控制范围没有用{}控制起来
错误2:x1=(-b+sqrt(disc))/(2*a));多了个),x2也是同样
错误3:声明的relpart错误,应该是realpart
这样就可以运行了,结果没看对不对
無_1024 2011-03-08
  • 打赏
  • 举报
回复
就是先吧根的条件用一个ifelse表示 有一个根 两个根 无根 三种情况 然后利用math的数学函数表示根的结果
「已注销」 2011-03-08
  • 打赏
  • 举报
回复
把错误贴出来

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧