C语言如何实现分次输入数据(二元一次方程求根问题)0
我想要在a=0时,再次输入ch来判断要不要继续求解。可是我输入a b c后换行,它就直接把换行符赋给ch了,郁闷……
下面是我的程序:
#include
#include
int main()
{
float x1,x2,a,b,c,Delta;int ch;
printf("请依次输入一元二次方程的系数a b c:\n");
scanf("%f%f%f",&a,&b,&c);
if(a==0&&b!=0)
{
printf("!!a=0\t此时方程为一此方程。是否求解该方程的解Y/N:\n");
ch=getchar();
switch(ch)
{
case '\n':
case 'Y':
case 'y':x1=-c/b;
printf("方程的解为:\nx=%.4f\n",x1);break;
default:;
}
}
else if(a==0&&b==0)printf("!!a=0\tb=0\t方程为等式\n"),(c==0)?printf("方程对任何数都成立\n"):printf("方程无解\n");
else
{
Delta=b*b-4*a*c;
if(Delta==0)
x1=-b/(2*a),printf("方程有两个相等的实数解:\nx1=x2=%.4f\n",x1);
else if(Delta>0)
x1=(-b+sqrt(Delta))/(2*a),x2=(-b-sqrt(Delta))/(2*a),
printf("方程有两个不相等的实数解:\nx1=%.4f\tx2=%.4f\n",x1,x2);
else if(Delta<0)
x1=-b/2/a,x2=fabs(sqrt(-Delta)/2/a),
printf("方程有一对共轭复根:\nx1=%.4f+%.4fi\tx2=%.4f-%.4fi\n",x1,x2,x1,x2);
}
return 0;
}