c语言求解一元二次方程
2017-09-19 00:17
225 查看
在用c语言实现一元二次方程求解时,我们首先约定这个方程是AX²+BX+C=0的形式,接下来需要考虑的便是这个一元二次方程的参数问题。我们分三种情况讨论,当A=0,B=0时,这样的参数无法构成合适的方程;当A=0,B≠0时,这个方程是个一元一次方程;当A≠0时,构成一元二次方程。这三种情况中的逻辑我们用if语句很容易就可以实现。接下来我们就需要选择参数的类型,这里我们选择float类型,因为计算机存储数据是二进制,存储浮点数时会有一定的误差,我们就需要定义一个误差精度,实现误差范围内的求解。最后,在第三种情况下我们嵌套if语句,解决一元二次方程中△分别大于小于等于0而解情况不同的问题。具体的代码实现如下:
//author:fl //date:17.9.17 //function:一元二次方程求解 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <math.h> #define disc 0.00000001 //误差精度 int main() { printf("请依照 AX^2+BX+C=0 的形式分别输入参数A B C;\n"); printf("\n"); float a = 0.0, b = 0.0, c = 0.0,d=0.0, x1=0.0, x2=0.0; scanf("%f %f %f", &a, &b, &c); printf("\n"); d = b*b - 4 * a*c; //用于判断实 数根个数 x1 = ((-b) + sqrt(d)) / (2 * a); //用于求解实数根 x2 = ((-b) - sqrt(d)) / (2 * a); if (((a > -disc) && 4000 (a < disc)) && ((b > -disc) && (b < disc))) //若参数a,b都为零,则无法组成适当的函数 { printf("请输入合理的参数!\n"); printf("\n"); } else if (((a > -disc) && (a < disc)) && ((b < -disc) || (b > disc)) //a为0且b 不为0,参数a,b,c构成一元一次方程 { printf("X=%f\n ",(-c) / b); printf("\n"); } else { if (d>disc) //d大于0,方程有两个不同的解 { printf("X1=%f\n", x1); printf("X2=%f\n", x2); printf("\n"); } else if ((d > -disc) && (d < disc)) //d等于0,方程有两个相同的解 { printf("X=X1=X2=%d\n", x1); printf("\n"); } else //d小于0,方程无解 { printf("此方程无实数根!\n"); printf("\n"); } } return 0; }
相关文章推荐
- 用c语言求解一元二次方程
- C语言简单编程之一元二次方程求解
- C语言 求解一元二次方程
- 用C求解一元二次方程的解,遇到的问题及解决办法 分类: C语言 2012-03-13 00:26 3094人阅读 评论(0) 收藏
- C语言求解一元二次方程
- 运用C语言求解一元二次方程
- c语言求解一元二次方程
- 用c语言求解一元二次方程
- 利用C语言求解一元二次方程组的解
- C语言实现一元二次方程的求解
- c语言求解一元二次方程
- c语言编写求解数独
- python(六) 用函数求解一元二次方程 以及 传参姿势
- 一元二次方程的判断及根的求解
- 求解一个一元二次方程的解
- C语言编程 N皇后问题求解
- 3----编程求解一元二次方程
- 迷宫问题的C语言求解
- 数独 递归求解(C语言)
- (C语言)分支界限法求解旅行商(TSP)问题