要求:從鍵盤上輸入一元二次方程的三個參數,編程判斷并求一元二次方程的實根(a,b,c均為整數)
算法分析:
一元二次方程是只含有一個未知數,且未知數的最高次數是二次的多項式方程。
一元二次方程經過整理都可化成一般形式ax2+bx+c=0(a≠0),其中ax2叫作二次項,a是二次項系數;bx叫作一次項,b是一次項系數;c叫作常數項。
(1)一元二次方程的解(根)的意義:能使一元二次方程左右兩邊相等的未知數的值稱為一元二次方程的解。一般情況下,一元二次方程的解也稱為一元二次方程的根(只含有一個未知數的方程的解也叫做這個方程的根)
(2)由代數基本定理,一元二次方程有且僅有兩個根(重根按重數計算),根的情況由判別式(△=b2-4ac)決定。
判別式
利用一元二次方程根的判別式(△=b2-4ac)可以判斷方程的根的情況。一元二次方程的根與根的判別式有如下關系:
①當?△>0??時,方程有兩個不相等的實數根;
②當?△=0?時,方程有兩個相等的實數根;
③當?△<0?時,方程無實數根,但有2個共軛復根。
代碼實現:
#include
#include
#include
main()
{
int?a,b,c,dt;
printf("請輸入方程的三個參數a,b,c的值:\n");
scanf("%d?%d?%d",&a,&b,&c);
dt=b*b-4*a*c;
if(dt>0)
printf("X1=%f?X2=%f\n",(-b+sqrt(dt))/(2*a)),(-b-sqrt(dt)/(2*a));
else?if(dt=0)
printf("X1=X2=%f\n",(float)-b/(2*a));
else
printf("方程無實數根!\n");
getch();
}
程序運行測試:
(1)△<0?方程無實數根
(2)△>0方程有兩個不相等的實數根
(3)△=0 方程有兩個相等的實數根