第1个回答 2008-07-10
int a,b,c; →→→ float a,b,c;
if (a==0) /*=改成==*/
printf("该方程不是一元二次方程");
else if ((b*b-4*a*c)<0)
printf("该方程无解");
else if ((b*b-4*a*c)==0)/*应该是先判断后计算*/
{
X=(double)(-b/(2*a));
printf("X= %lf",X);)/*double的格式输出符对应是%lf*/
第2个回答 推荐于2016-06-03
#include <stdio.h>
#include <math.h>/*用到数学函数时要把这个包含进来*/
int main(void)
{
int a,b,c;
double X,X1,X2;
printf("Input a:");
scanf("%d",&a); /*%f改成%d*/
printf("Input b:");
scanf("%d",&b); /*%f改成%d*/
printf("Input c:");
scanf("%d",&c); /*%f改成%d*/
if (a==0) /*=改成==*/
printf("该方程不是一元二次方程");
else if ((b*b-4*a*c)<0)
printf("该方程无解");
else if ((b*b-4*a*c)==0)/*应该是先判断后计算*/
{
X=(double)(-b/(2*a));
printf("X= %lf",X);)/*double的格式输出符对应是%lf*/
}
else if ((b*b-4*a*c)>0)
{
X1=(double)((-b+sqrt(b*b-4*a*c))/(2*a));
X2=(double)((-b-sqrt(b*b-4*a*c))/(2*a));
printf("X1=%lf, X2=%lf",X1,X2);
}
getch();
return 0;
}本回答被提问者采纳
第3个回答 2008-07-10
#include <stdio.h>
#include<math.h>
int main(void)
{
int a,b,c;
double X,X1,X2;
printf("Input a:");
scanf("%f",&a);
printf("Input b:");
scanf("%f",&b);
printf("Input c:");
scanf("%f",&c);
if (a==0)
printf("该方程不是一元二次方程");
else{
X=-b/(2*a);
if ((b*b-4*a*c)<0)
printf("该方程无解");
else if (b*b==4*a*c)
printf("X= %f",X);
else if ((b*b-4*a*c)>0){
X1=(-b+sqrt(b*b-4*a*c))/(2*a);
X2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("X1=%f, X2=%f",X1,X2);
}
}
return 0;
}
按你的思路勉强可以过,0不能作分母,得先进行判断,float型也不能直接与0进行比较
第4个回答 2008-07-10
X=-b/(2*a);
X1=(-b+sqrt(b*b-4*a*c))/(2*a);
X2=(-b-sqrt(b*b-4*a*c))/(2*a);
应该在判断后了再 做。。