知識點:
數學函數頭文件 #include <math.h>
開平方函數,sqrt()
注意等號 == 與賦值號= 的區別
內容: 求一元二次方程(二次項系統不為0)ax2+bx+c=0(a≠0)的實數根
輸入說明:
一行三個系數(用空格隔開)
輸出說明:
先輸出(-b+sqrt())/2/a的根,一行一個,如果是相等實根,則輸出一個(均保留兩位小數)
。若無實根輸出No answer!
輸入樣例:
1 1 2
輸出樣例 :
No answer!
1 #include <stdio.h> 2 #include <math.h> 3 int main() 4 { 5 float a,b,c,d,x1,x2; 6 scanf("%f %f %f",&a,&b,&c); 7 d=b*b-4*a*c; 8 if (d>=0) 9 { 10 x1=(-b+sqrt(d))/(2*a); 11 x2=(-b-sqrt(d))/(2*a); 12 if(x1==x2) 13 { 14 printf("%.2f\n",x1); 15 } 16 else 17 { 18 printf("%.2f\n%.2f\n",x1,x2); 19 } 20 } 21 else 22 { 23 printf("No answer!\n"); 24 } 25 return 0; 26 }
化簡,(a+c)x^2+2bx+a-c=0
△=0, (2b)^2-4(a+c)(a-c)=0. a^2=b^2+c^2
直角三角形。
【題目應為“有兩個相等的實數根”】
(a-c)x^2-2(a-b)x+a+c-2b=0有兩個【相等的】實數根
判別式[-2(a-b)]^2-4*(a-c)*(a+c-2b)=0
(a-b)^2-(a-c)*(a+c-2b)=0
b^2-2bc+c^2=0
(b-c)^2=0
b=c,等腰三角形