do...while 问题

静夜比特 2011-06-05 02:52:32
请大虾们帮我看下这些代码哪里有问题。我是新手,刚学c。请大家帮帮忙。谢谢!!!

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

int main(void)
{
double a, b, c;
double delta;
double x1, x2;
char ch;

do
{
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);
}
else if (0 == delta)
{
x1 = x2 = (-b)/(2*a);
printf("有两个相同的实解, x1 = x2 = %lf\n", x1, x2);
}
else
{
printf("无实解\n");
}
//printf("您想继续吗?(y/n):\n");
//scanf(" %c", &ch);
} while(1);

return 0;
}
...全文
60 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
静夜比特 2011-06-05
  • 打赏
  • 举报
回复
很感谢你们的回复!!!!!!!!!!!!!!!!
静夜比特 2011-06-05
  • 打赏
  • 举报
回复
这个代码我昨天在Vc++6.0中运行不了,我看了几遍,好像没问题,但运行的时候报错,cannot open debug

然后我就把它保存了,今天把它复制在这了。之后我用c-free打开,发现可以。在用vc++6.0也可以了。这是为什么?
蓝染忽右介 2011-06-05
  • 打赏
  • 举报
回复
# include <stdio.h>
# include <math.h>

int main(void)
{
double a, b, c;
double delta;
double x1, x2;
char ch;

do
{
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);
}
else if (0 == delta)
{
x1 = x2 = (-b)/(2*a);
printf("有两个相同的实解, x1 = x2 = %lf\n", x1, x2);
}
else
{
printf("无实解\n");
}
printf("您想继续吗?(y/n):\n");
scanf(" %c", &ch);
} while(ch=='y'||ch=='Y');//here

return 0;
}
s564654509 2011-06-05
  • 打赏
  • 举报
回复
代码能正确运行啊,你想改进那里啊?
KID_coder 2011-06-05
  • 打赏
  • 举报
回复

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

int main(void)
{
double a, b, c;
double delta;
double x1, x2;
char ch;
do
{
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);
}
else if (0 == delta)
{
x1 = x2 = (-b)/(2*a);
printf("有两个相同的实解, x1 = x2 = %lf\n", x1, x2);
}
else
{
printf("无实解\n");
}
printf("您想继续吗?(y/n):\n");
fflush(stdin); //清除缓存
scanf("%c", &ch); //%c前面去掉空格
if ( ch=='n' )
break;
} while(1);

return 0;
}

69,379

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧