do
{
语句;
}
while (表达式);
# include <stdio.h>
# include <math.h>
int main(void)
{
float a, b, c; //定义一元二次方程的三个系数
char k; //用于后面判断是否要继续输入
double delta, x1, x2; /*delta用来存储b*b - 4*a*c的值;x1和x2的值分别为方程的解*/
do
{
//输入一元二次方程的三个系数a、b、c
printf("请输入一元二次方程的三个系数, 用回车分隔:\n");
printf("a = ");
scanf("%f", &a);
while(getchar() != '\n'); /*容错处理, scanf后面都加上这一句, 作用是清空输入缓冲区, 以防用户乱输入*/
printf("b = ");
scanf("%f", &b);
while(getchar() != '\n');
printf("c = ");
scanf("%f", &c);
while(getchar() != '\n');
delta = b*b - 4*a*c;
//判断delta的值是大于零, 等于零, 还是小于零
if (delta > 0)
{
x1 = (-b +sqrt(delta)) / (2*a);
x2 = (-b -sqrt(delta)) / (2*a);
printf("有两个解, x1 = %f, x2 = %f\n", x1, x2);
}
else if (0 == delta)
{
x1 = x2 = (-b) / (2*a);
printf("有唯一解, x1 = x2 = %f\n", x1);
}
else
{
printf("无实数解\n");
}
//询问是否想继续输入
printf("您想继续吗, Y想, N不想:");
scanf("%c", &k); //输入Y或者N, 表示“想”或“不想”
while(getchar() != '\n');
}
while ('Y' == k);
return 0;
}
输出结果是:
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有