首先你已經(jīng)很清楚的說明了你這個程序是用C語言寫二次函數(shù)的,而當(dāng)a=0時,就不是二次函數(shù)了,應(yīng)該按照一次函數(shù)來進(jìn)行計算,否則 一個數(shù)除以0就沒有意義了.~
為沈丘等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及沈丘網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站建設(shè)、沈丘網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
#include stdio.h
#include stdlib.h
#include math.h
int main()
{
float a,b,c;
float x1,x2,m;
printf("input number a=:");
scanf("%f",a);
printf("input number b=:");
scanf("%f",b);
printf("input number c=:");
scanf("%f",c);
if(a==0)
printf("一根:%f\n",c*(-1)/b);
else if(a==0b==0)
printf("無意義!");
else
{
m=b*b-4*a*c;
if(m0)
{
printf("兩根\n");
printf("x1=%f\n",(-b+sqrt(m))/(2*a));
printf("x2=%f\n",(-b-sqrt(m))/(2*a));
}
else if(m==0)
printf("x1=x2=%f\n",x1);
}
else
printf("無實根\n");
}
return 0;
}
二次函數(shù)的函數(shù)值就是y值,如果知道x的值,就將x的值代入解析式中,就可以求出函數(shù)值。
舉例說明:給定二次函數(shù)y=x2+1,求x=2的時候的函數(shù)值。
(1)將x=2代入y=x2+1,得到y(tǒng)=22+1=4+1=5。
(2)當(dāng)x=2時,y的函數(shù)值等于5。
二次函數(shù)的基本表示形式為y=ax2+bx+c(a≠0)。二次函數(shù)最高次必須為二次, 二次函數(shù)的圖像是一條對稱軸與y軸平行或重合于y軸的拋物線。
擴(kuò)展資料:
ax2+bx+c=0(a≠0),根的情況:
(1)b^2-4ac0,ax^2+bx+c=0有兩個不相等的實根。
(2)b^2-4ac0,ax^2+bx+c=0無實根。
(3)b^2-4ac=0,ax^2+bx+c=0有兩個相等的實根。
y=ax2+bx+c(a≠0)對稱軸x=-b/2a
y=ax2+bx+c(a≠0)頂點(diǎn)(-b/2a,(4ac-b^2)/4a)
參考資料:百度百科-二次函數(shù)
y=ax^2+bx+c
以上面為例:a=1 b=4 c=0
極值=(4ac-b^2)/4a
double a=1, b=4, c=0;
double jizhi;
jizhi=(4*a*c-b*b)/(4*a);
你的
else if(b*b-4*a*c==0)
x1=x2=-b/2*a; printf("%.2f,%.2f",x1,x2);
和
else $=sqrt(b*b-4*a*c)/(2*a);
x1=-b+$;
x2=-b-$;
printf("x1=%.2f\n x2=%.2f\n",x1,x2);
兩句加上大括號就行了。。。
if只能執(zhí)行到分號以前,所以加入大括號。另外x1=x2=-b/2*a MS沒加小括號
else if(b*b-4*a*c==0)
{x1=x2=-b/(2*a); printf("%.2f,%.2f",x1,x2);}
else $=sqrt(b*b-4*a*c)/(2*a);
{ x1=-b+$;
x2=-b-$;
printf("x1=%.2f\n x2=%.2f\n",x1,x2);
}
還有。。