| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 184 人关注过本帖
标题:程序有问题,大家帮忙解决一下。
收藏  订阅  推荐  打印 
liuzhedash
Rank: 1
等级:新手上路
帖子:11
积分:238
注册:2008-7-11
程序有问题,大家帮忙解决一下。

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-7-11 10:30
woshiyun
Rank: 3Rank: 3
等级:中级会员
帖子:173
积分:2404
注册:2008-6-16

if (a=0)

if (a==0)
2008-7-11 10:44
coming
Rank: 3Rank: 3
等级:中级会员
帖子:238
积分:2558
注册:2008-4-20

恩 a==0
2008-7-11 13:21
liuzhedash
Rank: 1
等级:新手上路
帖子:11
积分:238
注册:2008-7-11

我的失误,这样的小问题
2008-7-11 14:10
liuzhedash
Rank: 1
等级:新手上路
帖子:11
积分:238
注册:2008-7-11

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出错了

[ 本帖最后由 liuzhedash 于 2008-7-11 14:32 编辑 ]
2008-7-11 14:26
liuzhedash
Rank: 1
等级:新手上路
帖子:11
积分:238
注册:2008-7-11

把else去了就可以了,但是不去为什么不对?
而且统统能够去掉

[ 本帖最后由 liuzhedash 于 2008-7-11 14:48 编辑 ]
2008-7-11 14:39
切忌浮躁
Rank: 1
等级:新手上路
帖子:29
积分:434
注册:2008-5-28
写程序注意格式。

/*****************************************************************
** HighlightCodeV3.1 software by yzfy(雨中飞燕) http://yzfy.org **
*****************************************************************/
#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-7-11 16:17
liuzhedash
Rank: 1
等级:新手上路
帖子:11
积分:238
注册:2008-7-11

多谢!麻烦了!
其实我的主要问题是在{}后面加了;
造成else的错误
2008-7-11 19:56
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.053661 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved