c语言vc++6.0编程问题,急!!!

求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac大于0、等于0和小于0时的根,并输出结果。(a、b、c的值从主函数中由键盘输入获得。)#include<st... 求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac大于0、等于0和小于0时的根,并输出结果。(a、b、c的值从主函数中由键盘输入获得。)
#include<stdio.h>
#include<math.h>
int dt(float);
void main()
{
float a,b,c,d;
printf("输入a,b,c的值:\n");
scanf("%f,%f,%f“,&a,&b,&c);
d=b*b-4*a*c;
if(dt(d)==0)
printf("x1=%f,x2=%f\n",(b+sqrt(d))/2a,(-b-sqrt(d))/2a);
else
if(dt(d)==1)
printf("x=%f\n",-b/2a);
else
if(dt(d)==2)
printf("此方程无解!\n");
}
int dt(float m)
{
if(m>0)
return 0;
else
if(m=0)
return 1;
else
if(m<0)
return 2;
}
编译报错,
d:\vc6.0\microsoft visual studio\myprojects\exp6 9\9.cpp(8) : error C2001: newline in constant
d:\vc6.0\microsoft visual studio\myprojects\exp6 9\9.cpp(9) : error C2146: syntax error : missing ')' before identifier 'd'
d:\vc6.0\microsoft visual studio\myprojects\exp6 9\9.cpp(11) : error C2059: syntax error : 'bad suffix on number'
d:\vc6.0\microsoft visual studio\myprojects\exp6 9\9.cpp(11) : error C2146: syntax error : missing ')' before identifier 'a'
d:\vc6.0\microsoft visual studio\myprojects\exp6 9\9.cpp(11) : error C2059: syntax error : 'bad suffix on number'
d:\vc6.0\microsoft visual studio\myprojects\exp6 9\9.cpp(11) : error C2059: syntax error : ')'
d:\vc6.0\microsoft visual studio\myprojects\exp6 9\9.cpp(14) : error C2059: syntax error : 'bad suffix on number'
d:\vc6.0\microsoft visual studio\myprojects\exp6 9\9.cpp(14) : error C2146: syntax error : missing ')' before identifier 'a'
d:\vc6.0\microsoft visual studio\myprojects\exp6 9\9.cpp(14) : error C2059: syntax error : ')'
问题语句都是出在主函数体里pirntf那句中
求高手解释!多谢
展开
 我来答
浪花飘零2000
2012-12-27 · TA获得超过630个赞
知道小有建树答主
回答量:579
采纳率:0%
帮助的人:541万
展开全部
第八行 scanf("%f,%f,%f“,&a,&b,&c); 错打了一个全角的“,应该改为半角的"
第十一行和十四行 2a两个字符应该改为 (2*a) 中间加乘号,两边加括号
第九行的报错可能是受第八行的错误影响的
if(m=0) 行浮点数无法这么精确判断是否等于0,可改为 if (fabs(m)<0.0001)

修改后的程序为
#include<stdio.h>
#include<math.h>
int dt(float);
void main()
{
float a,b,c,d;
printf("输入a,b,c的值:\n");
scanf("%f,%f,%f",&a,&b,&c);
d=b*b-4*a*c;
if(dt(d)==0)
printf("x1=%f,x2=%f\n",(b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
else
if(dt(d)==1)
printf("x=%f\n",-b/(2*a));
else
if(dt(d)==2)
printf("此方程无解!\n");
}
int dt(float m)
{
if(m>0)
return 0;
else
if (fabs(m)<0.0001)
return 1;
else
if(m<0)
return 2;
}
百度网友5a45a47
2012-12-27 · TA获得超过136个赞
知道答主
回答量:71
采纳率:0%
帮助的人:64.1万
展开全部
#include<stdio.h>
#include<math.h>
int dt(float);
void main()
{
float a,b,c,d;
printf("输入a,b,c的值:\n");
scanf("%f,%f,%f",&a,&b,&c);
d=b*b-4*a*c;
if(dt(d)==0)
printf("x1=%f,x2=%f\n",(b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
else
if(dt(d)==1)
printf("x=%f\n",-b/(2*a));
else
if(dt(d)==2)
printf("此方程无解!\n");
}
int dt(float m)
{
if(m>0)
return 0;
else
if(m=0)
return 1;
else
if(m<0)
return 2;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
濮方雅BX
2012-12-27 · TA获得超过4042个赞
知道大有可为答主
回答量:2482
采纳率:60%
帮助的人:2470万
展开全部
2a要写成 2*a
另外你的dt函数里有点小问题,float型的判断=0不能这么写,要写成:
if(abs(m) < 0.0000001)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
索贝尔上尉
2012-12-27 · TA获得超过3318个赞
知道大有可为答主
回答量:1837
采纳率:66%
帮助的人:1798万
展开全部
里面很多符号你打成中文标点了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iwaswzq
2012-12-27 · 超过17用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:39.7万
展开全部
一般都是输入错误,比如输入了中文的)(粗括号),或少输入了)。仔细检查8,9行代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2244850
2012-12-27
知道答主
回答量:71
采纳率:0%
帮助的人:21万
展开全部
一般遇到这样的问题 可以先看看提示行有没有少括号,或有中文字符的,有时你把上面的错误改掉 下面的错误就没了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式