1. 程式人生 > 資訊 >小米王化承諾,MIUI“親情守護”功能有望迴歸

小米王化承諾,MIUI“親情守護”功能有望迴歸

本題目要求一元二次方程a**x2+b**xc=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;
}