标题:新手,求大神指错!!!!!
只看楼主
深蓝灬
Rank: 2
等 级:论坛游民
帖 子:29
专家分:22
注 册:2011-9-14
结帖率:87.5%
已结贴  问题点数:10 回复次数:5 
新手,求大神指错!!!!!
求一元二次方程式的解
main()
{
float a,b,c,x,area,s;
printf("please enter the value of a,b,c,x");
scanf("%f %f %f %f",&a,&b,&c,&x);
area=b*b-4*a*c;
if(area<0)
   {
   printf("no slution ");
   }
else if(area=0)
      {
      printf("x1=x2=%f",-b/2*a);

      }
else if(area>0);
      {
      s=sqrt(area);
      printf("x1=%f,x2=%f",(-b+s)/(2*a),(-b-s)/(2*a));

      }
输入1 2 3 4 后不是应该只输出“no solution” 么?为啥还会继续执行下面的程序??
搜索更多相关主题的帖子: solution please enter 
2011-10-02 19:38
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:1 
回复 楼主 深蓝灬
因为最后一个else if后面跟了分号

总有那身价贱的人给作业贴回复完整的代码
2011-10-02 20:03
larryliu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:58
专家分:128
注 册:2011-9-30
得分:2 
1、头文件要有
#include <stdio.h>
#include <math.h>
2、要有返回值return 0;
3、s声明为double
4、else if(area=0)这里错了应该是else if(area==0)
5、x貌似没用过。。。
6、后面的if那多了个句号
2011-10-02 20:09
lxk115
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:70
专家分:121
注 册:2011-8-28
得分:2 
else if(area>0);//多了分号
然后就是一元二次方程不是只用输入三个值的么...什么时候变成四个了

行动是治愈恐惧的良药,而犹豫、拖延将不断滋养恐惧。


2011-10-02 23:16
xiehou314159
Rank: 2
等 级:论坛游民
帖 子:35
专家分:86
注 册:2011-5-11
得分:3 
同意3楼的,另:else if(area==0)建议写成else if(0==area),写成else if(area=0)和else if(area==0)编译器都能通过,但写成else if(0==area)和else if(0=area)就不一样了,后者会报错;sqrt()是返回一个double值,将其返回值赋值给一个float变量可能会丢失信息
2011-10-03 00:21
yangli0314
Rank: 3Rank: 3
来 自:重庆
等 级:论坛游侠
帖 子:101
专家分:142
注 册:2011-9-3
得分:2 
楼上说的很好,注意这些小技巧,能免去很多麻烦!
2011-10-03 00:25



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




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

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