求一元二次方程的解

简介: 解一元二次方程a不为0的时候有三种情况,一、有两个不相等的实数根;二、有两个相等的实数根;三、有两个不相等的共轭复根。使用\bigtriangleup=b^2-4ac与0的关系来控制执行条件,再用求根公式求解(需要用求根函数sqrt(),在头文件需要声明一下#include"math.h")

一、求一元二次方程的解

1.题目
求一元方程ax^2+bx+c=0(a!=0)的实数根,a,b,c通过键盘输入

2.思路
解一元二次方程a不为0的时候有三种情况,一、有两个不相等的实数根;二、有两个相等的实数根;三、有两个不相等的共轭复根。使用=b^2-4ac与0的关系来控制执行条件,再用求根公式求解(需要用求根函数sqrt(),在头文件需要声明一下#include"math.h")

3.代码

#include "stdio.h"
#include "math.h"
 
int main() {
    float a, b, c, d, x1, x2, p, q;
    printf("请输入a,b,c:");
    scanf("%f%f%f", &a, &b, &c);
    d = b * b - 4 * a * c;
 
    if (d > 0) {
        x1 = (-b + sqrt(d)) / (2 * a);
        x2 = (-b - sqrt(d)) / (2 * a);
        printf("方程有两个不相等的实数根,分别为:");
        printf("%.2f,%.2f", x1, x2);
    } else if (d == 0) {
        x1 = (-b + sqrt(d)) / (2 * a);
        x2 = x1;
        printf("方程有两个相等的实数根,分别为:");
        printf("%.2f,%.2f", x1, x2);
    } else {
        p = -b / (2 * a);
        q = sqrt(-d) / (2 * a);
        printf("方程有两个不相等的共轭复根,分别为:");
        printf("%.2f+%.2fi,%.2f+%.2fi", p, q, p, q);
    }
 
    return 0;
}

补充知识点

1.math.h
math.h头文件中声明了常用的一些数学运算(大多是数学公式)

**1.绝对值
**
int n=-1;

abs(n); 求整型的绝对值

2.三角函数

double sin(n);正弦

double cos(n);余弦

double tan(n);正切
**
3.求根**

int 4;

sqrt(n);

2.控制输出格式
%3d:输出所占的格子(向右对齐),比如输出数字,前面就空3-1=2个空格。

代码结果:

#include "stdio.h"
 
int main() {
    int n = 2;
    printf("%3d", n);
    return 0;
}

执行结果:
image.png

%9s: 输出所占的格子(向右对齐),输出字符串,前面空9-字符串的长度个空格

代码:

#include "stdio.h"
 
int main() {
    char str[6] = "china";
    printf("%9s", str);
    return 0;
}

执行结果:
image.png

注意定义字符数组要比字符串的长度大1

%.2f:保留两位小数点

代码:

#include "stdio.h"
 
int main() {
    float n = 2;
    printf("%.2f", n);
    return 0;
}

执行结果:
image.png

%5.3f:占5个位,数值保留三位小数点

代码:

#include "stdio.h"
 
int main() {
    float n;
    scanf("%f", &n);
    printf("%8.3f", n);
    return 0;
}

执行结果:
image.png

5保留三位小数为5.000,占5个位,小数点也占一个位,所以前面就空三个位

相关文章
|
5月前
|
C++
【PTA】​ L1-080 乘法口诀数列​(C++)
【PTA】​ L1-080 乘法口诀数列​(C++)
88 0
【PTA】​ L1-080 乘法口诀数列​(C++)
|
11月前
一个求公约数和公倍数的有趣求法
一个求公约数和公倍数的有趣求法
54 0
卡诺图化简法的介绍
卡诺图化简法:从真值表到逻辑电路设计 一、引言(100字) 卡诺图化简法是一种常用的布尔代数化简方法,可以将复杂的逻辑电路简化为更简单的形式。本文将介绍卡诺图化简法的基本原理、应用技巧和实际案例,以帮助读者更好地理解和应用该方法。 二、卡诺图化简法的基本原理(200字) 卡诺图是一种二维表格,用于表示布尔代数中的逻辑函数。卡诺图的每个格子代表一个输入变量的取值组合,而格子内的数值则表示该输入变量组合下逻辑函数的输出值。通过卡诺图的排列和组合,可以找到逻辑函数的最简形式,并设计对应的逻辑电路。 卡诺图化简法的基本原理是利用逻辑函数的真值表,将相邻的1合并成更大的1组,从而找到最简的逻辑表达
307 0
wustojc3001求三角形面积
wustojc3001求三角形面积
44 0
wustojc3001求三角形面积
|
存储
蛇形矩阵和矩阵转置
蛇形矩阵和矩阵转置
53 0
|
Serverless Python
求一元二次方程的解
求一元二次方程的解
79 0
|
Java
一元二次方程方程的类
一元二次方程方程的类
107 0
AcWing 658. 一元二次方程公式
AcWing 658. 一元二次方程公式
83 0
AcWing 658. 一元二次方程公式
牛顿迭代法求开方
牛顿迭代法求开方
202 0
牛顿迭代法求开方