注意:这是一篇关于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语言:如何求解一元二次方程的根相关推荐

  1. c语言程序能够在不同的操作系统下运行,这说明c语言具有很好的,程序设计(C)作业一(有答案)...

    程序设计(C)作业一 1.C语言程序的执行,总是起始于(). A.程序中的第一条可执行语句 B.程序中的第一个函数 C.main函数 D.包含文件中的第一个函数 2.以下叙述不正确的是(). A.一个 ...

  2. c语言程序能够在不同的操作系统下运行,这说明c语言具有很好的,上海交通大学继续教育学院2012春——程序设计(C)作业1(有答案)...

    程序设计(C)作业一 1. C语言程序的执行,总是起始于( ). A.程序中的第一条可执行语句 B.程序中的第一个函数 C.main函数 D.包含文件中的第一个函数 2. 以下叙述不正确的是( ). ...

  3. 常微分方程数值解的c语言程序,常微分方程的数值解法 一阶常微分方程数值解的C语言编程实现.doc...

    常微分方程的数值解法 一阶常微分方程数值解的C语言编程实现 导读:就爱阅读网友为您分享以下"一阶常微分方程数值解的C语言编程实现"资讯,希望对您有所帮助,感谢您对92的支持! 一阶 ...

  4. c语言程序设计项目化实训教程北京邮电出版,C语言程序设计教程(北京邮电大学出版社) 第1章精选.ppt...

    C语言程序设计教程(北京邮电大学出版社) 第1章精选 1.1 程序与程序设计 1.2 算法及其描述 1.3 C语言的发展及特点 二.C语言的特点 1.具有结构化语言的特点,用函数作为程序的组成单 位, ...

  5. 在c语言程序中 对文件进行操作首先要,《C语言程序设计》试题八及答案

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我 ...

  6. lt19264a+c语言程序,可以直接显示汉字的19264液晶驱动C语言程序

    19264 C语言程序资料 注:本程序是经过KEIL编译通过 ,并通过实验板测试通过的,直接按硬件电路连接好显示屏 然后将程序代码烧写入单片机 即可点亮,将显示 武汉2 字,并且 随意设置坐标,就可以 ...

  7. c语言程序代码应缩进几格,汉诺塔c语言程序代码

    汉诺塔c语言程序代码(通过vc++6.0验证)(附讲解) 让我们先看看代码吧 #include int hj(int a,int b, int c,int i) { int t; if(i==1) p ...

  8. 程序设计方法主要有两种 其中C 语言程序,程序设计方法主要有两种,其中C++语言程序设计所采用的设计方法是( ) 程序设计。...

    程序设计方法主要有两种,其中C++语言程序设计所采用的设计方法是( ) 程序设计. 更多相关问题 如图,向量A.B.C在一条直线上,且,则()A. B. C. D. 下列各项中,()是行政处罚的形式. ...

  9. 二级c语言程序题常考知识点,计算机等级考试二级C语言常见知识点总结

    记忆力对于人生的生活是非常重要的,如果一个人老是遗忘事情,对他的生活与工作会出现很大的影响.下面学习啦小编就为大家介绍一下关于计算机等级考试二级c语言的常见知识点,欢迎大家参考和学习. 1)程序结构是 ...

  10. 秒表系统的设计c语言程序,51单片机秒表计时器课程设计报告(含C语言程序).doc...

    51单片机秒表计时器课程设计报告(含C语言程序) XXXXXX学院 51单片机系统设计 课程设计报告 题 目: 秒表系统设计 专业.班级: 学生姓名: 学 号: 指导教师: 分 数 : [摘要]本设计 ...

最新文章

  1. 《Javascript高级程序设计》读书笔记之对象创建
  2. 计算python执行时间
  3. 探索Julia(part14)--学生得分描述性统计案例
  4. JSP的session处理
  5. Andorid Binder进程间通信---总结
  6. 企业级项目实战讲解!java的war包能直接改名么
  7. Linux安装samba的过程,Samba安装全过程
  8. RMAN备份与还原 - 参考案例
  9. php微信40037,服务号发送模板消息问题,错误码:40037
  10. java远程关机_通过jsch实现对linux服务器的shell客户端远程控制关机完整示例代码分享...
  11. 好文!2020届最新互联网校招薪资大全!
  12. linux 6.5端口开启关闭,linux CentOS6.5 防火墙(关闭除提供系统服务以外的端口)...
  13. 环境变量 - Maven
  14. 第一次冲刺-站立会议02
  15. ANSYS Workbench网格划分具体数值方法
  16. 【编译原理】自下而上语法分析(C/C++源码+实验报告)
  17. Could not resolve project
  18. Roy Li:币市里,我相信社区的力量和草根的崛起
  19. SUMO无法创建xml文件 Could not build output file
  20. 活性氧Propiconazole-d3 (nitrate),CAS No. 2699607-26-4

热门文章

  1. Windows开机出现Scaning and repairing错误
  2. 如何搭建一个前端脚手架
  3. 嵌入式学习笔记-迅为4412开发板实现一键开关机休眠唤醒
  4. vue调用手机浏览器打开pdf_在微信中调用外部浏览器实现文件下载之解决
  5. ESP32的倒腾日记——做一个蓝牙双模快捷键盘
  6. CSDN是什么?——我的博客漫漫成长之路
  7. mac怎么禁止某个应用联网?
  8. Windows照片查看器
  9. 刚想起QQ微信支付宝三合一收款码
  10. 雷达原理(一):雷达波形