c语言求一元二次方程(实根曾根都要显示)

[复制链接]
查看11 | 回复4 | 2010-5-20 23:04:47 | 显示全部楼层 |阅读模式
我是一个新手,我的做法是#include "stdio.h"
void main()
{

#include "stdio.h"
#include "math.h"
void main()
{float a,b,c,disc,x1,x2,p,q;
#include "stdio.h"
#include "math.h"
void main()
{float a,b,c,disc,x1,x2,p,q;
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(disc)/(2*a);
if("disc>0")
x1=p+q;x2=p-q;
printf("x1=%5.2f\nx2=%5.2f\n",x1,x2);
else if("disc=0");
printf("x1=x2=%5.2f\n");
else
printf("x1=%5.2f+%5.2fi\nx2=%5.2f-%5.2fi\n"p,q,p,q);


}
第一步就显示有问题,请高手帮助!!!
不是第一步,是float那有问题

回复

使用道具 举报

千问 | 2010-5-20 23:04:47 | 显示全部楼层
你写的有点乱,可改为下面:#include "stdio.h"#include "math.h"void main(){float a,b,c,disc,x1,x2,p,q; float a,b,c,disc,x1,x2,p,q; scanf("a=%f,b=%f,c=%f",&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); if("disc>0") {x1=p+q;x2=p-q; printf("x1=%5.2f\nx2=%5.2f\n",x1,x2);}//if语句是复合语句 else if("disc==0")//号等是“==”
回复

使用道具 举报

千问 | 2010-5-20 23:04:47 | 显示全部楼层
从语法上帮你改出来了,只是不知道你最后一句printf("x1=%5.2f+%5.2fi\nx2=%5.2f-%5.2fi\n"p,q,p,q);是想输出什么还有else if("disc=0"); printf("x1=x2=%5.2f\n");是相输出什么,0吗?
回复

使用道具 举报

千问 | 2010-5-20 23:04:47 | 显示全部楼层
disc=0 这是一个赋值语句,如果是想当条件实用应该是disc==0这才是相等的语句
回复

使用道具 举报

千问 | 2010-5-20 23:04:47 | 显示全部楼层
ergh
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行