C 语言,求一元二次方程!!!!

时间:2014.12.08 发布人:恛忆丶

C 语言,求一元二次方程!!!!

已解决问题

谷歌恛忆丶用户在2014.12.08提交了关于“魔女之泉3C 语言,求一元二次方程!!!!”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-03-01T20:16:31。

#include<stdio.h>
#include<math.h>

intmain(void)

{
do
{
doublea,b,c;
doubledelta;
doublex1,x2;
charch;

printf("请输入一元二次方程的三个系数:\n");
printf("a=");
scanf("%lf",&a);

printf("b=");
scanf("%lf",&b);

printf("c=");
scanf("%lf",&c);

delta=b*b-4*a*c;

if(delta>0)
{
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf("有两个解,x1=%lf,x2=%lf\n",x1,x2);
}
elseif(0==delta)
{
x1=x2=(-b)/(2*a);
printf("有唯一解,x1=x2=&lf\n",x1,x2);
}
else
{
printf("无实数解!\n");
}
printf("你想继续吗(Y/N):");
scanf("%c",&ch);

}while('y'=='ch'||'Y'=='ch');

return0;
}

这编程应该没错吧..为什么按Y不循环??搞不懂,那位C高手求解!!!

希望大家能够帮助她。

详细问题描述及疑问:

#include<stdio.h>
#include<math.h>

intmain(void)

{
do
{
doublea,b,c;
doubledelta;
doublex1,x2;
charch;

printf("请输入一元二次方程的三个系数:\n");
printf("a=");
scanf("%lf",&a);

printf("b=");
scanf("%lf",&b);

printf("c=");
scanf("%lf",&c);

delta=b*b-4*a*c;

if(delta>0)
{
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf("有两个解,x1=%lf,x2=%lf\n",x1,x2);
}
elseif(0==delta)
{
x1=x2=(-b)/(2*a);
printf("有唯一解,x1=x2=&lf\n",x1,x2);
}
else
{
printf("无实数解!\n");
}
printf("你想继续吗(Y/N):");
scanf("%c",&ch);

}while('y'=='ch'||'Y'=='ch');

return0;
}

这编程应该没错吧..为什么按Y不循环??搞不懂,那位C高手求解!!!

期待您的答案,当代劳模,所有人都应该向你学习 !
希望以下的回答,能够帮助你。

第1个回答

用户名:Palen_X  

把ch的定义拿到do循环外面,不能在循环体内,就是这个错误。不循环就是因为‘y’不可能等于‘ch’,明白了吧?