求大神看看这个程序哪出错了,求x2是总是输出-1.ind00(貌似是越界有关问题)
求大神看看这个程序哪出错了,求x2是总是输出-1.#ind00(貌似是越界问题)
#include<stdio.h>
#include<math.h>
main()
{float a,b,c;
float x1,x2,y,d,d2;
printf("输入系数:");
scanf("%f %f %f",&a,&b,&c);
if(a==0)
{x1=x2=(-c)/b;}
else
{d=b*b-4*a*c;d2=d;
y=(-b)/(2*a);
if(d>=0)
{x1=y+sqrt(d)/(2*a);
x2=y-sqrt(d2)/(2*a);}
else
x1=y+sqrt(-d)/(2*a);
x2=y-sqrt(-d)/(2*a);
}
printf("x1=%f x2=%f\n",x1,x2);
}
我试几组数,x2总=-1.#ind00
------解决方案--------------------
#include<stdio.h>
#include<math.h>
main()
{float a,b,c;
float x1,x2,y,d,d2;
printf("输入系数:");
scanf("%f %f %f",&a,&b,&c);
if(a==0)
{x1=x2=(-c)/b;}
else
{d=b*b-4*a*c;
d2=d;
y=(-b)/(2*a);
if(d>=0)
{x1=y+sqrt(d)/(2*a);
x2=y-sqrt(d2)/(2*a);
}
else
{
x1=y+sqrt(-d)/(2*a);
x2=y-sqrt(-d)/(2*a);
}
printf("x1=%f x2=%f\n",x1,x2);
}
}
你的代码丢大括号了,我帮你加了
#include<stdio.h>
#include<math.h>
main()
{float a,b,c;
float x1,x2,y,d,d2;
printf("输入系数:");
scanf("%f %f %f",&a,&b,&c);
if(a==0)
{x1=x2=(-c)/b;}
else
{d=b*b-4*a*c;d2=d;
y=(-b)/(2*a);
if(d>=0)
{x1=y+sqrt(d)/(2*a);
x2=y-sqrt(d2)/(2*a);}
else
x1=y+sqrt(-d)/(2*a);
x2=y-sqrt(-d)/(2*a);
}
printf("x1=%f x2=%f\n",x1,x2);
}
我试几组数,x2总=-1.#ind00
------解决方案--------------------
#include<stdio.h>
#include<math.h>
main()
{float a,b,c;
float x1,x2,y,d,d2;
printf("输入系数:");
scanf("%f %f %f",&a,&b,&c);
if(a==0)
{x1=x2=(-c)/b;}
else
{d=b*b-4*a*c;
d2=d;
y=(-b)/(2*a);
if(d>=0)
{x1=y+sqrt(d)/(2*a);
x2=y-sqrt(d2)/(2*a);
}
else
{
x1=y+sqrt(-d)/(2*a);
x2=y-sqrt(-d)/(2*a);
}
printf("x1=%f x2=%f\n",x1,x2);
}
}
你的代码丢大括号了,我帮你加了