#include<stdio.h> #include<stdlib.h> #include<math.h> int main() { // putchar輸出字符,getchar輸入字符, printf格式輸出,scanf格式輸入, puts輸出字符串, gets輸入字符串 // 一元二次方程求解 float a, b, c; printf("Input a ,b , c :"); scanf("%f %f %f", &a, &b, &c); if (fabs(a) <= 1e-15) //條件:當|a|<0 時 能夠改爲<=EPS { //1e-15 表示一個極小的數 浮點型零就是一個近似值 printf("不是一元二次方程"); printf("x = %.2f", c / b); exit(0); //執行到此處 程序返回0 並退出 } else { float disc, p, q, x1, x2; disc = b * b - 4 * a * c; p = -b / (2 * a); q = sqrt(fabs(disc)) / (2 * a); if (fabs(disc) <= 1e-15) { printf("x1 = x2 = %.2f", p); } else if (disc > 1e-15) { printf("x1 = %.2f, x2 = %.2f", p + q, p - q); } else //(德爾塔小於0 ) { printf("x1 = %.2f+%.2fi\n", p, q); printf("x1 = %.2f-%.2fi\n", p, q); } } return 0; }