我的编程空间,编程开发者的网络收藏夹
学习永远不晚

用C语言求解一元二次方程的简单实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

用C语言求解一元二次方程的简单实现

C语言 求解一元二次方程

在用C语言求解一元二次方程的时候,首先,最重要的肯定是要引入"math.h"这个头文件,其次要会运用相关的数学库函数,如“sqrt”,“delta”等。

让我们一起在代码中寻找问题吧。

#include <stdio.h>
#include <math.h>
int main (void)
{
    int a = 1,b = 2,c = 1;
    float x1 , x2 , delta ;
    delta = b*b - 4*a*c ;
 
    if ( delta > 0 )
 
    {
        x1 = (-b-sqrt(delta)) / (2*a);
        x2 = (-b+sqrt(delta)) / (2*a);
        printf ("该方程有两解,x1 = %f\n,x2 = %f\n",x1,x2);
    }
 
    else if (delta == 0)
    {
        x1 = (-b) / (2*a);
        x2 = x1;
        printf ("该方程有唯一解,x1 = x2 = %f\n",x1 = x2);
    }
 
    else if (delta < 0)
    {
        printf ("该方程无解\n");
    }
    return 0;
 } 

这是之前我发的第一个博客代码,现在我看到“数一数二的白落”的评价后又优化了一些,代码如下:

#include <stdio.h>
#include <math.h>
int main (void)
{
    int a, b, c;
    printf("请输入一元二次方程的三个系数:\n");
    scanf("%d %d %d",&a,&b,&c);
    float x1 , x2 , delta ;
    delta = b*b - 4*a*c ;
 
    if ( delta > 0 )
 
    {
        x1 = (-b-sqrt(delta)) / (2*a);
        x2 = (-b+sqrt(delta)) / (2*a);
        printf ("该方程有两解,x1 = %f\n,x2 = %f\n",x1,x2);
    }
 
    else if (delta == 0)
    {
        x1 = (-b) / (2*a);
        x2 = x1;
        printf ("该方程有唯一解,x1 = x2 = %f\n",x1 = x2);
    }
 
    else if (delta < 0)
    {
        printf ("该方程无解\n");
    }
    return 0;
 } 

求一元二次方程的解,考虑所有情况

假设:ax²+bx+c=0

要求输入a,b,c的值,判断并求出方程的解。

有以下几种情况:

1、a = 0

(1)b = 0

c = 0时,x可以是任意数;

c != 0时,方程不成立;

(2)b != 0

方程为一元一次方程,x = - c b \frac{c}{b} bc​

2、a != 0

(1)△ =b^2-4ac >0,方程有两个不等的实根;

在这里插入图片描述

(2)△ =b^2-4ac =0,方程有两个相等的实根;

(3)△ =b^2-4ac <0,方程有两个共轭复根;

在这里插入图片描述

#include <stdio.h>   //编译预处理
#include <math.h>    //编译预处理
int main()
{
	double a,b,c,x1,x2,Delta,realpart,mipart;
	//声明函数变量
	printf("a*x^2 + bx +c = 0,请输入a,b,c的值:");
	scanf("%lf,%lf,%lf",&a,&b,&c);
	//获取输入的a,b,c三个系数的值
	//printf("%.2f,%.2f,%.2f",a,b,c);
	if (a == 0 )   //判断a是否为0
	{
		if(b != 0)
		{
		x1 = -c / b;
		printf("方程是一元一次方程,x1=%.2f\n",x1);
		}
		else 
		{
		if (c ==0)   printf("x可以是任意值。\n");
		else  printf("方程不成立。\n");
		}
	}
	else
	{
		Delta = pow(b,2) - 4*a*c;   
		//判断delta的值
		if (Delta>0)
		{
			x1 = (-b+sqrt(Delta)) / (2*a);
			x2 = (-b-sqrt(Delta)) / (2*a);
			printf("方程的两个根为x1 = %.2f,x2 = %.2f\n",x1,x2);
		}
		else
		{
			if (Delta == 0)
			{
				x1 = - b/(2*a);
				x2 = - b/(2*a);
				printf("方程有两个相等的根:\nx1=%.2f\nx2=%.2f\n",x1,x2);
			}
			else
			{
				realpart = - b/(2*a);        //实部
				mipart = sqrt(-Delta) / (2*a);
				printf("方程有两个共轭复根:\n");
				printf("x1 = %.2f+%.5fi\n",realpart,mipart);   
				//人为地加了i,以表示虚部
				printf("x2 = %.2f-%.5fi\n",realpart,mipart);
			}
		}
	}
	return 0;
}
//每个if和else都用花括号{}包起来,这样程序识别时候不会认为else没有匹配的if。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

用C语言求解一元二次方程的简单实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

用C语言求解一元二次方程的简单实现

这篇文章主要介绍了用C语言求解一元二次方程的简单实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

C语言怎么求一元二次方程

本篇内容介绍了“C语言怎么求一元二次方程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!求一元二次方程:ax2+bx+c=0 的根。输入三个实
2023-06-17

Python编程实现数学运算求一元二次方程的实根算法示例

本文实例讲述了Python编程实现数学运算求一元二次方程的实根算法。分享给大家供大家参考,具体如下: 问题: 请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程:ax² + bx + c = 0的两
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录