如何编写一个C程序来找到二次方程的根?

如何编写一个C程序来找到二次方程的根?

问题

应用软件开发方法解决任意问题在C语言中实现。

解决方案

  • 找到一个二次方程的根,ax2+bx+c
  • 给定二次方程将有两个根。

分析

输入 - a、b、c的值

输出 - r1、r2的值

步骤

r_{1}=\frac{-b+\sqrt{b^2-4ac}}{2a}

r_{2}=\frac{-b-\sqrt{b^2-4ac}}{2a}

设计(算法)

  • 开始
  • 读取a、b、c的值
  • 计算d = b2-4ac
  • 如果d > 0,则
    • r1 = b+ sqrt (d)/(2*a)
    • r2 = b sqrt(d)/(2*a)
  • 否则,如果d = 0,则
    • 计算r1 = -b/2a,r2=-b/2a
    • 打印r1、r2的值
  • 否则,如果d < 0,则打印根是虚数
  • 停止

如何编写一个C程序来找到二次方程的根?

实现代码

# include<stdio.h>
# include<math.h>

int main () {
    float a,b,c,r1,r2,d;

    printf ("Enter the values of a b c: ");
    scanf (" %f %f %f", &a, &b, &c);

    d= b*b - 4*a*c;

    if (d>0) {
        r1 = -b+sqrt (d) / (2*a);
        r2 = -b-sqrt (d) / (2*a);
        printf ("The real roots = %f %f", r1, r2);
    }
    else if (d==0) {
        r1 = -b/(2*a);
        r2 = -b/(2*a);
        printf ("Roots are equal =%f %f", r1, r2);
    }
    else
        printf("Roots are imaginary");

    return 0;
}  

测试

Case 1:  
Enter the values of a b c: 1 4 3  
The real roots = -3.000000 -5.000000  
Case 2:  
Enter the values of a b c: 1 2 1  
Roots are equal =-1.000000 -1.000000  
Case 3:  
Enter the values of a b c: 1 1 4  
Roots are imaginary

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程