c语言中怎么输入两次数据,C语言如何实现分次输入数据(二元一次方程求根问题)...

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;

}