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),作为是否继续输入的依据。

相关文章

你真的了解scanf吗(scanf-s)

scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。其调用格式为: scanf("<格式化字符串&g...

结合缓冲区谈谈C语言scanf()函数的那些奇奇怪怪行为

scanf() 是从标准输入设备(键盘)读取数据,带有行缓冲区的,这让 scanf() 具有了一些独特的特点,例如可以连续输入、可以输入多余的数据等。反过来,scanf() 也出现了一些奇怪的行为,例...

第3天:7天学会C语言,每天5分钟,不需要基础

昨天讲了系统安装,今天可以继续讲编写程序了。先把昨天的作业给做了,昨天的作业是编写C语言程序输出以下图形:程序如下:怎么样?很简单吧?复习一下,每一行第2个双引号前面的 \n 是什么?对了,是换行。上...

7.C语言-选择结构设计(c语言选择结构设计实验报告)

1.IF单分支结构if(表达式) 语句表达式可以是任意表达式,语句可以是一条语句,也可以是复合语句,执行过程,先判断表达式是否为真,如果为真,那么执行语句,如果为假,那么跳过语句执行后面的程序。flo...

C语言程序编写输入任意三个数求它们的平均值?

题目:输入任意三个数求它们的平均值?程序:#include<stdio.h> int main() { int a,b,c,sum; float avg; scanf("%d %...

嵌入式C语言常用的5类预处理(嵌入式对c语言的要求)

在嵌入式系统编程中不管是内核的驱动程序还是应用程序的编写,涉及到大量的预处理与条件编译,这样做的好处主要体现在代码的移植性强以及代码的修改方便等方面。因此引入了预处理与条件编译的概念。在C语言的程序中...