VC++ 一元二次方程求解程序

[复制链接]
查看11 | 回复2 | 2010-9-11 12:57:30 | 显示全部楼层 |阅读模式
#include "stdafx.h"
#include "math.h"
#include "stdio.h"
main()
{
float a,b,c,derta,x;
double x1,x2;
printf("请输入二次项系数:\n");
scanf("%f",&a);
printf("请输入一次项系数:\n");
scanf("%f",&b);
printf("请输入常数:\n");
scanf("%f",&c);
derta=b*b-4*a*c;
{
if (a!=0)
{
if (derta<0)

printf("该方程无实数根");
else
{

if(derta=0)

x1=(-b)/(2*a);

printf("该方程的解为x1=x2=%f",x1);

else

x1=(-b+sqrt(derta))/(2*a);

x2=(-b-sqrt(derta))/(2*a);

printf("方程的解为x1=%f \n x2=%f",x1,x2);

}
}

else

{
if (b=0)

printf("这不是一个方程");

else

x=(-c)/b;

printf("该方程的解为x=%f",x);

}
}
return 0;
}
总是提示 illegal else without matching if请问如何修改谢谢
可是我连着的第二个ELSE是 对应最开始的那个分IF的呀 那要怎么改?

回复

使用道具 举报

千问 | 2010-9-11 12:57:30 | 显示全部楼层
if(derta=0)
x1=(-b)/(2*a);if(derta=0)
x1=(-b)/(2*a);这里有问题 if后面要跟两个等号的,一个等号是赋值,两个等号才是条件判断。 等会 我改好了传给你啊。 你试试这个,刚改的。#include "math.h"#include "stdio.h"main(){float a,b,c,derta,x;double x1,x2; printf("请输入二次项系数:\n"); scanf("%f",&a); printf("请输入一次项系数:\n"); scanf("%f",&b); printf("请输入常数:\n"
回复

使用道具 举报

千问 | 2010-9-11 12:57:30 | 显示全部楼层
if下面多语句应该用大括号例如:if(条件){语句1;语句2;}而且if否面应该一个else
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行