c语言程序算一元二次方程,以实例跟我学C语言:如何求解一元二次方程的根
注意:这是一篇关于C语言编程的基础语法内容,C语言大神请绕过。
例子说明
对于如下的一元二次方程:
设计C语言程序,输入一元二次方程的三个系数a、b、c,求解出该方程的两个根,并且允许用户在程序中多次输入不同的系数,以求解不同的一元二次方程的解。
编程思路分析
对于该方程,令delta=b^2-4*a*c,从数学的角度来讲,我们需要根据delta的值来判断该方程的根情况:
当delta>=0时,其两个根为实数解,分别为(-b+sqrt(delta))/(2*a)和(-b-sqrt(delta))/(2*a);
当delta<0时,其两个根为复数解,实部皆为-b/(2*a),虚部分别为sqrt(-delta)/(2*a)和-sqrt(-delta)/(2*a)。
其中,sqrt(delta)代表对delta作开根号运算。
在代码设计中,可定义一个结构体Complex存储该方程的根,在该结构体中包括实部和虚部两个变量,如下所示:
在程序中,定义两个Complex类型的根x1和x2,当delta>=0时,两个根的虚部为0,否则,分别求解两个根的虚部值。
C语言实现实现代码
根据上面的分析,C语言的实现代码如下:
下面对代码作简要说明:
第1-3行包含程序必需的头文件,其中第3行包含的目的是在第14行能够调用SetConsoleTitle函数修改控制台窗口的标题。
第16-18行是程序内部变量的定义,其中,字符型变量k用以控制while循环是否继续运行,作另一次方程的求解。
第20-42行在while循环内部求解一元二次方程的根,每次循环开始时,根据k的值判断是否进入循环。
第24行“while(getchar()!='\n');”,其目的是清空输入缓冲区的内容,getchar函数每次从缓冲区中取出一个字符,只要取出的字符不是回车就一直取,这样可以缓冲区中所有的无效字符都取出来,直到用户按下回车键为止。清空输入缓冲区的内容后,在第48行输入k的值时才能接收到正确的字符值。
第44-45行,使用printf函数在控制台窗口上打印两个根的值,格式符“%10.5f”代表打印的数字格式为:占10个字符的宽度并且保留5位小数。
第47-48行,使用scanf函数接收用户的输入放到k中,只有当用户输入’y’字符时,while继续运行,否则退出while循环。
程序运行结果如下图所示,可以分别求出实数解和算数解的情况:
总结
这个例子程序比较简单,但涉及到的C语言知识点不算少,包括:while循环、if/else、结构体、getchar函数、printf函数、scanf函数、控制台窗口标题设置等。
如果你觉得这篇文章对你有用的话,请不要忘记点赞哦。
举报/反馈
c语言程序算一元二次方程,以实例跟我学C语言:如何求解一元二次方程的根相关推荐
- c语言程序能够在不同的操作系统下运行,这说明c语言具有很好的,程序设计(C)作业一(有答案)...
程序设计(C)作业一 1.C语言程序的执行,总是起始于(). A.程序中的第一条可执行语句 B.程序中的第一个函数 C.main函数 D.包含文件中的第一个函数 2.以下叙述不正确的是(). A.一个 ...
- c语言程序能够在不同的操作系统下运行,这说明c语言具有很好的,上海交通大学继续教育学院2012春——程序设计(C)作业1(有答案)...
程序设计(C)作业一 1. C语言程序的执行,总是起始于( ). A.程序中的第一条可执行语句 B.程序中的第一个函数 C.main函数 D.包含文件中的第一个函数 2. 以下叙述不正确的是( ). ...
- 常微分方程数值解的c语言程序,常微分方程的数值解法 一阶常微分方程数值解的C语言编程实现.doc...
常微分方程的数值解法 一阶常微分方程数值解的C语言编程实现 导读:就爱阅读网友为您分享以下"一阶常微分方程数值解的C语言编程实现"资讯,希望对您有所帮助,感谢您对92的支持! 一阶 ...
- c语言程序设计项目化实训教程北京邮电出版,C语言程序设计教程(北京邮电大学出版社) 第1章精选.ppt...
C语言程序设计教程(北京邮电大学出版社) 第1章精选 1.1 程序与程序设计 1.2 算法及其描述 1.3 C语言的发展及特点 二.C语言的特点 1.具有结构化语言的特点,用函数作为程序的组成单 位, ...
- 在c语言程序中 对文件进行操作首先要,《C语言程序设计》试题八及答案
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我 ...
- lt19264a+c语言程序,可以直接显示汉字的19264液晶驱动C语言程序
19264 C语言程序资料 注:本程序是经过KEIL编译通过 ,并通过实验板测试通过的,直接按硬件电路连接好显示屏 然后将程序代码烧写入单片机 即可点亮,将显示 武汉2 字,并且 随意设置坐标,就可以 ...
- c语言程序代码应缩进几格,汉诺塔c语言程序代码
汉诺塔c语言程序代码(通过vc++6.0验证)(附讲解) 让我们先看看代码吧 #include int hj(int a,int b, int c,int i) { int t; if(i==1) p ...
- 程序设计方法主要有两种 其中C 语言程序,程序设计方法主要有两种,其中C++语言程序设计所采用的设计方法是( ) 程序设计。...
程序设计方法主要有两种,其中C++语言程序设计所采用的设计方法是( ) 程序设计. 更多相关问题 如图,向量A.B.C在一条直线上,且,则()A. B. C. D. 下列各项中,()是行政处罚的形式. ...
- 二级c语言程序题常考知识点,计算机等级考试二级C语言常见知识点总结
记忆力对于人生的生活是非常重要的,如果一个人老是遗忘事情,对他的生活与工作会出现很大的影响.下面学习啦小编就为大家介绍一下关于计算机等级考试二级c语言的常见知识点,欢迎大家参考和学习. 1)程序结构是 ...
- 秒表系统的设计c语言程序,51单片机秒表计时器课程设计报告(含C语言程序).doc...
51单片机秒表计时器课程设计报告(含C语言程序) XXXXXX学院 51单片机系统设计 课程设计报告 题 目: 秒表系统设计 专业.班级: 学生姓名: 学 号: 指导教师: 分 数 : [摘要]本设计 ...
最新文章
- 《Javascript高级程序设计》读书笔记之对象创建
- 计算python执行时间
- 探索Julia(part14)--学生得分描述性统计案例
- JSP的session处理
- Andorid Binder进程间通信---总结
- 企业级项目实战讲解!java的war包能直接改名么
- Linux安装samba的过程,Samba安装全过程
- RMAN备份与还原 - 参考案例
- php微信40037,服务号发送模板消息问题,错误码:40037
- java远程关机_通过jsch实现对linux服务器的shell客户端远程控制关机完整示例代码分享...
- 好文!2020届最新互联网校招薪资大全!
- linux 6.5端口开启关闭,linux CentOS6.5 防火墙(关闭除提供系统服务以外的端口)...
- 环境变量 - Maven
- 第一次冲刺-站立会议02
- ANSYS Workbench网格划分具体数值方法
- 【编译原理】自下而上语法分析(C/C++源码+实验报告)
- Could not resolve project
- Roy Li:币市里,我相信社区的力量和草根的崛起
- SUMO无法创建xml文件 Could not build output file
- 活性氧Propiconazole-d3 (nitrate),CAS No. 2699607-26-4