标题:能帮我看一下错误吗??
只看楼主
zhengrongsu
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-10-21
 问题点数:0 回复次数:11 
能帮我看一下错误吗??

#include<stdio.h> #include<math.h>

void main() { float a,b,c,x1,x2,p,q,disc; printf("please enter the number of a,b,c:\n"); scanf("a=%f,b=%f,c=%f",&a,&b,&c);

p=-b/(2*a); disc=b*b-4*a*c; q=sqrt(disc)/(2*a); if(disc>=0) { if(disc==0) { x1=x2=p; } else x1=p+q; x2=p-q; } printf("\n\nx1=%5.2f,x2=%5.2f",x1,x2);

if(disc<0)

printf("方程无解"); }这个程序为什么调试的时候没错,但是结果却是错的呢?能帮我看一下吗??

搜索更多相关主题的帖子: number include please 
2005-10-21 22:24
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 
你先告诉我你是怎么输入的?

scanf("a=%f,b=%f,c=%f",&amp;a,&amp;b,&amp;c);

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-10-21 22:26
zhengrongsu
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-10-21
得分:0 
先不考虑那个,你就当那个是
scanf("f,%f,%f",&amp;a,&amp;b,&amp;c);
这样子看一下,那个我是看到别的地方 那样写的,所以也那样写了一下,

2005-10-21 23:18
zhangjianhui
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-10-22
得分:0 
[注意]

#include<stdio.h> #include<math.h>

void main() { float a,b,c,x1,x2,p,q,disc; printf("please enter the number of a,b,c:\n"); scanf("a=%f,b=%f,c=%f",&a,&b,&c);

p=-b/(2*a); disc=b*b-4*a*c; q=sqrt(disc)/(2*a); if(disc>0) {x1=p+q; x2=p-q;} printf("\n\nx1=%5.2f,x2=%5.2f",x1,x2); if(disc==0) { x1=x2=p; }

printf("\n\nx1=x2=%5.2f",x1,x2);

if(disc<0)

printf("方程无解"); } 你看这样行不行? 可能你的第一个if少了一个}

2005-10-22 10:32
猪也聪明
Rank: 1
等 级:新手上路
帖 子:156
专家分:0
注 册:2005-5-16
得分:0 
输入的格式和你scanf里的格式一样吗,你的程序没有错,问题肯定是你输入数据的格式错了,输入一个数后用逗号格开,而不是回车

虽然我没有翅膀,可是我希望飞的高点
2005-10-22 10:35
zhengrongsu
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-10-21
得分:0 
是这样哎,谢谢各位!!!

2005-10-22 10:50
starrysky
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
得分:0 

#include<stdio.h> #include<math.h>

void main() { float a,b,c,x1,x2,p,q,disc; printf("please enter the number of a,b,c:\n"); scanf("a=%f,b=%f,c=%f",&a,&b,&c);

p=-b/(2*a); disc=b*b-4*a*c; if(disc>=0) //有解 { q=sqrt(disc)/(2*a); //这句放在外面会出错,disc<0时系统无法求出q if(disc==0) x1=x2=p; else { //花括号打错地方了吧,打在上面没用 x1=p+q; x2=p-q; } printf("\n\nx1=%5.2f,x2=%5.2f",x1,x2); //这句属于有解的情况,不应该在括号外 } if(disc<0) //无 解

printf("方程无解"); }


我的征途是星辰大海
2005-10-22 10:56
starrysky
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
得分:0 
之所以结果会出错,是因为程序编写逻辑上有错误。
建议楼主以后注意一下括号的运用和程序语句执行先后的问题。

我的征途是星辰大海
2005-10-22 11:01
powerlong
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2005-10-22
得分:0 
scanf("a=%f,b=%f,c=%f",&amp;a,&amp;b,&amp;c)改为scanf("%f,%f,%f",&amp;a,&amp;b,&amp;c)
输入时为a,b,c回车.
2005-10-22 20:42
124yj
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-10-23
得分:0 
对 输入的时候要有逗号
2005-10-23 11:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-30923-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.891235 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved