小米王化承諾,MIUI“親情守護”功能有望迴歸
阿新 • • 發佈:2021-10-12
本題目要求一元二次方程a**x2+b**x+c=0的根,結果保留2位小數。
輸入格式:
輸入在一行中給出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
answer
#include <stdio.h> #include <math.h> int main() { double a,b,c; scanf("%lf %lf %lf",&a,&b,&c); if(a != 0){ double d = b*b-4*a*c; if(d > 0){ printf("%.2lf\n",((-b+sqrt(d)))/(2*a)); printf("%.2lf\n",((-b-sqrt(d)))/(2*a)); }else if(d == 0){ printf("%.2lf\n",((-b+sqrt(d)))/(2*a)); }else if(d < 0){ if(b!=0){ printf("%.2lf+%.2lfi\n",-b/(2*a),sqrt(-d)/(2*a)); printf("%.2lf%.2lfi\n",-b/(2*a),-sqrt(-d)/(2*a)); }else{ printf("0.00+%.2lfi\n",sqrt(-d)/(2*a)); printf("0.00%.2lfi\n",-sqrt(-d)/(2*a)); } } }else{ if(b != 0) printf("%.2lf",-c/b); else{ if(c == 0) printf("Zero Equation"); else printf("Not An Equation"); } } return 0; }