用C语言中,如何用调用函数编写求一元二次方程的根
int GetRoot(float a, float b, float c ,double* root){ double delta, deltasqrt ; delta = b* b - 4*a*c ; if(delta<0) return 0 ; deltasqrt = sqrt(delta) ; if (a!=0.0){ root[0] = (deltasqrt - b)/(2.0*a) ; root[1] = (-deltasqrt - b)/(2.0*a) ; } if (root[0] == root[1]) return 1; else return 2 ; } int main(void){ //计算方程的根 float a = 2.0,b =6.0,c=3.0 ;//a,b,c s是参数 double root[2] ;//root是得到的两个根 int n = GetRoot(a,b,c,root) ; if (n<1){ printf("方程无根") ; }else{ printf("方程的解为:%f,%f",root[0],root[1]) ; } }
C语言,求方程式ax2+bx+c=0的根
方程式ax^2+bx+c=0的根可以通过求解一元二次方程公式得到,即:
x = (-b ± sqrt(b^2 - 4ac)) / 2a
其中,a、b、c分别代表方程式中的系数。其中,如果b^2 - 4ac小于0,则方程没有实数根,如果b^2 - 4ac等于0,则方程有一个实数根,如果b^2 - 4ac大于0,则方程有两个实数根。
C语言代码如下:
```c
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c, disc, root1, root2;
printf("请输入方程的系数a、b、c:");
scanf("%!l(MISSING)f %!l(MISSING)f %!l(MISSING)f", &a, &b, &c);
disc = b * b - 4 * a * c; // 判别式
if (disc < 0) {
printf("方程无实数根。\n");
} else if (disc == 0) {
root1 = root2 = -b / (2 * a);
printf("方程有一个实数根 x = %!l(MISSING)f\n", root1);
} else {
root1 = (-b + sqrt(disc)) / (2 * a);
root2 = (-b - sqrt(disc)) / (2 * a);
printf("方程有两个实数根 x1 = %!l(MISSING)f, x2 = %!l(MISSING)f\n", root1, root2);
}
return 0;
}
```
在上述代码中,使用scanf函数接收用户输入的系数a、b、c,然后根据判别式的值计算方程的根,最后使用printf函数输出结果。