| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 447 人关注过本帖
标题:程序有问题,大家帮忙解决一下。
只看楼主 加入收藏
liuzhedash
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-7-11
收藏
 问题点数:0 回复次数:7 
程序有问题,大家帮忙解决一下。
void main()
{
float a,b,c,dt,sdt,x1,x2;
printf("input ax^2+bx+c=0 a,b,c");
scanf("%f %f %f",&a,&b,&c);
dt=b*b-4*a*c;
printf ("%f %f %f %f",a,b,c,dt);
if (a=0) printf("Not real E"); else
 if (dt<0)  printf ("no real roots");
  else /*if(dt>1e-6)*/ {x1=(-b+sdt)/(2*a);x1=(-b-sdt)/(2*a);printf("x1=%7.2f,x2=%7.2f",x1,x2);};
getch();
}
求一元二次方程的根,但是显示被零除。
谢谢大家
2008-07-11 10:30
woshiyun
Rank: 1
等 级:新手上路
威 望:2
帖 子:348
专家分:0
注 册:2008-6-16
收藏
得分:0 
if (a=0)

if (a==0)
2008-07-11 10:44
coming
Rank: 1
等 级:新手上路
帖 子:244
专家分:0
注 册:2008-4-20
收藏
得分:0 
恩 a==0
2008-07-11 13:21
liuzhedash
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-7-11
收藏
得分:0 
我的失误,这样的小问题
2008-07-11 14:10
liuzhedash
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-7-11
收藏
得分:0 
void main()
{
float a,b,c,dt,sdt,x1,x2;
printf("input ax^2+bx+c=0 a,b,c");
scanf("%f %f %f",&a,&b,&c);
dt=b*b-4*a*c;
printf ("%f %f %f %f",a,b,c,dt);
if (a==0) printf("Not real E");
  else if (dt<0)  printf ("no real roots");
    else if(dt>0) {x1=(-b+sdt)/(2*a);x1=(-b-sdt)/(2*a);printf("x1=%f,x2=%f\n",x1,x2);};
      else if (dt==0) {x1=(-b/(2*a));printf("x1=x2=%f",x1);};
  getch();
}
那么这个呢?加入了等根的判断,但是else出错了

[[it] 本帖最后由 liuzhedash 于 2008-7-11 14:32 编辑 [/it]]
2008-07-11 14:26
liuzhedash
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-7-11
收藏
得分:0 
把else去了就可以了,但是不去为什么不对?
而且统统能够去掉

[[it] 本帖最后由 liuzhedash 于 2008-7-11 14:48 编辑 [/it]]
2008-07-11 14:39
切忌浮躁
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2008-5-28
收藏
得分:0 
写程序注意格式。
/*****************************************************************
** HighlightCodeV3.1 software by yzfy(雨中飞燕) http:// **
*****************************************************************/
#include <stdio.h>
#include <math.h>
int main()
{
   
float a,b,c,dt,sdt,x1,x2;
    printf("input ax^2+bx+c=0 a,b,c");
    scanf("%f %f %f",&a,&b,&c);
    dt=b*b-4*a*c;
    printf ("%f %f %f %f",a,b,c,dt);
    if (a==0) printf("Not real E");
        else if (dt<0)
        printf ("no real roots");
            else if(dt>0)
            {
               
sdt=sqrt(dt);
                x1=(-b+sdt)/(2*a);
                x2=(-b-sdt)/(2*a);
                printf("x1=%f,x2=%f\n",x1,x2);
            }
               
else if (dt==0)
                {
                    
x1=(-b/(2*a));
                    printf("x1=x2=%f",x1);
                }
                    
getchar();
}

给你修改了。
2008-07-11 16:17
liuzhedash
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-7-11
收藏
得分:0 
多谢!麻烦了!
其实我的主要问题是在{}后面加了;
造成else的错误
2008-07-11 19:56
快速回复:程序有问题,大家帮忙解决一下。
数据加载中...
 
   



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

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