C语言求解一元二次方程,利用scanf函数可以实现输入方程的系数,如果要实现连续输入,可以使用do…while循环。
do…while循环
do…while循环的基本格式
do{ 循环体语句 }while(条件);
执行流程
(1)执行do之后的语句
(2)判断while语句后的条件是否成立,成立继续执行do语句,否则结束循环。
代码示例
#include<; #include<ma; 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),作为是否继续输入的依据。