• 求方程 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的值

  • 相关阅读:
    结构体
    指针
    数组
    银行取款机系统
    函数
    基础
    IOS系统的安装和Vi的操作模式以及简单的指令
    1203.4——循环语句 之 for
    1203.3——循环语句 之 while
    1203.2——条件语句 之 switch语句
  • 原文地址:https://www.cnblogs.com/inta/p/13356694.html
Copyright © 2020-2023  润新知