C语言求解一元二次方程(升级版)(c语音求一元二次方程的解)
C语言求解一元二次方程,利用scanf函数可以实现输入方程的系数,如果要实现连续输入,可以使用do…while循环。
do…while循环
do…while循环的基本格式
do{
循环体语句
}while(条件);
执行流程
(1)执行do之后的语句
(2)判断while语句后的条件是否成立,成立继续执行do语句,否则结束循环。
代码示例
#include<stdio.h>
#include<math.h>
int main(void){
double a,b,c;
double x1,x2,delta;
char ch;
do{
printf("请输入三个系数a,b,c\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;
x2 = (-b - sqrt(delta)) /2;
printf("方程有两个实数根,x1 = %lf;x2 = %lf\n",x1,x2);
}
else if (delta == 0){
x1 = (-b + sqrt(delta)) /2;
printf("方程有一个实数根,x1=x2=%lf\n",x1);
}
else
printf("方程无实数根\n");
printf("是否继续输入(Y/N):");
scanf(" %c",&ch);
}while('Y'==ch || 'y'==ch);
}
运行结果
运行分析
(1)使用scanf函数实现一元二次方程系数的输入。
(2)使用do…while循环实现循环输入系数,do…while循环中首先执行do语句,然后再进行while语句中的表达式判断。
(3)定义char变量,存储字符‘y’或其他字符,在while语句中使用while('Y'==ch || 'y'==ch),作为是否继续输入的依据。