zoukankan      html  css  js  c++  java
  • 求方程 ax^2+bx+c=0的根,用3个函数分别求当: b^2-4ac大于0、等于0和小于0时的根并输出结果。从主函数输入a,b,c的值

    求方程 ({ax}^2+bx+c=0)的根,用3个函数分别求当: (b^2-4ac)大于0、等于0和小于0时的根并输出结果。从主函数输入a,b,c的值

    题目解析

    根据disc = (b^2-4ac) 的值来决定如何求根,题目本身编程不难,不过需要同学们复习一下高中的数学知识哦。

    代码示例

    #include<stdio.h>
    #include<math.h>
    
    //x1为第一个根,x2为第二个根
    float x1, x2, disc, p, q;
    
    void greater_than_zero(float a, float b)
    {
    	float m = sqrt(disc);
    	x1 = (-b + sqrt(disc)) / (2 * a);
    	x2 = (-b - sqrt(disc)) / (2 * a);
    }
    
    void equal_to_zero(float a, float b)
    {
    	x1 = x2 = (-b) / (2 * a);
    }
    
    void smaller_than_zero(float a, float b)
    {
    	p = -b / (2 * a);
    	q = sqrt(-disc) / (2 * a);
    }
    
    int main()
    {
    	int a, b, c;
    	printf("请输入 a b c:");
    	scanf("%d %d %d", &a, &b, &c);
    
    	printf("表达式为: %d*x^2+%d*x+%d = 0
    ", a, b, c);
    	disc = b*b - 4 * a*c;
    
    	if (disc > 0)
    	{
    		greater_than_zero(a, b);
    		printf("disc>0的根为: x1=%f    x2=%f
    ", x1, x2);
    	}
    	else if (disc == 0)
    	{
    		equal_to_zero(a, b);
    		printf("disc==0的根为:x1=%f    x2=%f
    ", x1, x2);
    	}
    	else
    	{
    		smaller_than_zero(a, b);
    		printf("disc<0的根为:x1=%f+%f x2=%f-%f
    ", p, q, p, q);
    	}
    	return 0;
    }
    

    运行结果:

    求方程 ax^2+bx+c=0的根,用3个函数分别求当: b^2-4ac大于0、等于0和小于0时的根并输出结果。从主函数输入a,b,c的值

  • 相关阅读:
    Java vs Python
    Compiled Language vs Scripting Language
    445. Add Two Numbers II
    213. House Robber II
    198. House Robber
    276. Paint Fence
    77. Combinations
    54. Spiral Matrix
    82. Remove Duplicates from Sorted List II
    80. Remove Duplicates from Sorted Array II
  • 原文地址:https://www.cnblogs.com/inta/p/13356694.html
Copyright © 2011-2022 走看看