PTA( 求一元二次方程的根)——C语言)细解

这篇具有很好参考价值的文章主要介绍了PTA( 求一元二次方程的根)——C语言)细解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本题目要求一元二次方程ax2+bx+c=0的根,结果保留2位小数。(注意:0.00会在gcc下被输出为-0.00,需要做特殊处理,输出正确的0.00。)

输入格式:

输入在一行中给出3个浮点系数a、b、c,中间用空格分开。

输出格式:

根据系数情况,输出不同结果:

1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;

2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的;

3)如果方程只有一个根,则直接输出此根;

4)如果系数都为0,则输出"Zero Equation";

5)如果a和b为0,c不为0,则输出"Not An Equation"。

输入样例1:

2.1 8.9 3.5

输出样例1:

-0.44
-3.80

输入样例2:

1 2 3

输出样例2:

-1.00+1.41i
-1.00-1.41i

输入样例3:

0 2 4

输出样例3:

-2.00

输入样例4:

0 0 0

输出样例4:

Zero Equation

输入样例5:

0 0 1

输出样例5:

Not An Equation

解题思路:根据求根公式判断函数的根,根据根的数量判断后续。

程序实现如下:

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
    double a,b,c; 
    scanf("%lf %lf %lf",&a,&b,&c);
    if(a==0&&b==0&&c==0){
    printf("Zero Equation");
    }else if(a==0&&b==0&&c!=0){
    printf("Not An Equation");
    }else{
        if(a!=0)
     {
            double p=b*b-4*a*c;
            if(p>0)
      { 
                double x1,x2;
                x1=(-b+sqrt(p))/(2*a);
                x2=(-b-sqrt(p))/(2*a);
                printf("%.2lf\n",x1);
                printf("%.2lf\n",x2);
            }
      else if(p<0)
      { 
                if(b!=0)
       { 
                    double real=-b*1.0/(2*a);
                    double imag=sqrt(-p)*1.0/(2*a);
                    printf("%.2lf%+.2lfi\n",real,imag);
                    printf("%.2lf%+.2lfi\n",real,-imag);
                }
       else
       { 
                    double imag=sqrt(-p)*1.0/(2*a);
                    printf("%.2lf%+.2lfi\n",0.0,imag);
                    printf("%.2lf%+.2lfi\n",0.0,-imag);
                }
            }
      else
      { 
                printf("%.2lf\n",-b*1.0/(2*a));
            }
        }
     else
     { 
            if(b!=0)
      { 
                printf("%.2lf\n",-c*1.0/b);
            }
      else
      {
                if(c==0)
                {
                 printf("Zero Equation\n");
       }
                else
       {
         printf("Not An Equation\n");
             }
            }
        }
    }
    return 0;
}
文章来源地址https://www.toymoban.com/news/detail-736053.html

到了这里,关于PTA( 求一元二次方程的根)——C语言)细解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python程序大全(7)——一元一次、一元二次方程解及函数解析

    从1月到6月一直没更新,学习太忙辣。马上就要暑假了,今天是六一儿童节,所以抽出空来更新更新。 本文讲述的是1元1次方程,1元2次方程的python解法。只用给出一般形式的系数和常数,自动给出方程的解。还附带函数解析。 写作不易,支持一波~(好久没打这八个字了)

    2024年02月07日
    浏览(93)
  • 接一元二次方程的几种解法,用python代码实现

    一元二次方程的解法有以下几种:公式法、因式分解法、配方法、求根公式法。 下面是使用Python代码实现一元二次方程的解法: ```python import math def solve_quadratic_equation(a, b, c):     delta = b**2 - 4*a*c     if delta 0:         return \\\"无实根\\\"     elif delta == 0:         x = -b / (2*a)    

    2024年02月07日
    浏览(36)
  • PTA( 猜数字游戏)——C语言)细解

    猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果

    2024年02月08日
    浏览(43)
  • PTA练习4.2 平衡二叉树的根 (25 分)

    题干 将给定的一系列数字插入初始为空的AVL树,请你输出最后生成的AVL树的根结点的值。 输入格式: 输入的第一行给出一个正整数N(≤20),随后一行给出N个不同的整数,其间以空格分隔。 输出格式: 在一行中输出顺序插入上述整数到一棵初始为空的AVL树后,该树的根结点

    2023年04月08日
    浏览(20)
  • Python调用二分法和牛顿法求方程的根

    二分法是最简单的求根算法。 对于方程 f ( x ) = 0 f(x)=0 f ( x ) = 0 ,如果 f ( a ) ⋅ f ( b ) 0 f(a)cdot f(b)0 f ( a ) ⋅ f ( b ) 0 ,则说明 a , b a,b a , b 之间必有根,如果按照某个步长对其进行搜索,那么最终一定能够不断缩小根的取值范围,不断精确化。 二分法就是基于这种思想的一种

    2024年02月02日
    浏览(57)
  • Matlab求解方程或函数的根,root,fzero,solve,fsolve的区别

    1.引言 Matlab中有很多求解方程和方程组的函数,这些函数的使用可能有很多人都模棱两可,这里做一个简单的介绍,给个大方向,学会这些函数的基本使用场景。想要学习每个函数的更多细节和案例,Matlab官方帮助文档是最好的材料。假传万卷书,真传一案例,我们一起用例

    2024年02月06日
    浏览(47)
  • 求解方程x^2=a的根,不使用库函数直接求解(不动点迭代法)

            首先可以将方程两边同时加上x, ,这时候两边同时再除以1+x,就得到了 ,变形为 。(变性后的 迭代式不唯一 ,这里随便选取一个)          当x是准确值的时候,两边应该是相等的,如果x是近似值,x误差很小很小,我们变可以认为x是可接受的近似解。 

    2024年02月15日
    浏览(41)
  • PTA 习题3.6 一元多项式的乘法与加法运算

    设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式

    2024年02月07日
    浏览(29)
  • 最优化方法Python计算:解一元方程

    我们知道,若 f ( x ) f(x) f ( x ) 在 R text{ℝ} R 上连续,则 f ( x ) f(x) f ( x ) 有原函数 F ( x ) , x ∈ R F(x),xintext{ℝ} F ( x ) , x ∈ R 。因此,解方程 f ( x ) = 0 f(x)=0 f ( x ) = 0 ,等价于计算 F ( x ) F(x) F ( x ) 的局部最小(大)值。譬如,设 f ( x ) f(x) f ( x ) 在 [ a 0 , b 0 ] [a_0,b_0] [ a 0 ​

    2024年02月13日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包