#include stdio.h
我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、元江縣ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的元江縣網(wǎng)站制作公司
int main(void)
{
double a,b,c,d,e;
double x1,x2;
printf("請(qǐng)輸入ax^2+bx +c = 0中a,b,c的值");
scanf("%lf,%lf,%lf",a,b,c);
e = b * b - 4 * a * c;
if (e0) {
printf("無解,請(qǐng)重新輸入\n");
scanf("%lf,%lf,%lf",a,b,c);
}
printf("輸入正確,正在計(jì)算....\n");
d = sqrt(e);
x1 = (-b + d)/(2 * a);
x2 = (-b - d)/(2 * a);
printf("x1=%f\n",x1);
printf("x2=%f\n",x2);
return 0;
}
pre t="code" l="cpp"#include stdio.h
#include math.h
int main()
{
float a, b, c, jud;
printf ("輸入二次方程的三個(gè)系數(shù)(第一個(gè)不能為0):");
scanf ("%f %f %f", a, b, c);
jud = b * b - 4 * a * c; //根的判別式
if (jud 0)
{
printf ("該方程有兩個(gè)不相等的實(shí)根:\n");
printf ("x1 = %.2f\n",(-b + sqrt (jud)) / (2 * a));
printf ("x2 = %.2f\n", (-b - sqrt (jud)) / (2 * a));
}
else if (jud == 0)
{
printf ("該方程有兩個(gè)相等的實(shí)根:\n");
printf ( "x1 = x2 = %.2f\n", -b / (2 * a));
}
else
printf ("This equation haven't real root\n");
return 0;
}
你的輸入語句為:
scanf("%f,%f,%f",a,b,c);
運(yùn)行后輸入的數(shù)據(jù)是否使用了兩個(gè)逗號(hào)分割,否則a,b,c的值并不是你輸入的內(nèi)容,你可以輸出來看一看。
建議輸入語句不要逗號(hào),例如這樣:
scanf("%f%f%f",a,b,c);
這樣輸入的數(shù)據(jù)使用逗號(hào)或者回車分開都可以。
#include stdio.h
#include math.h
void main()
{ double a,b,c,x1,x2,d,i,t;
printf("請(qǐng)輸入 a,b,c:\n");
scanf("%lf,%lf,%lf",a,b,c);
d=b*b-4*a*c;
i=sqrt(-1);
if(a==0)
printf("不是二次函數(shù)\n");
else if(d0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%lf,x2=%lf\n",x1,x2);
}
else if(d0)
{
x1=(-b+i*sqrt(d))/(2*a);//這里負(fù)數(shù)不能開根號(hào)
x2=(-b-i*sqrt(d))/(2*a);//這里負(fù)數(shù)不能開根號(hào)
printf("x1=%lf,x2=%lf\n",x1,x2);
}/*當(dāng)d0時(shí)求復(fù)數(shù)根:可將實(shí)部和虛部分開處理,注意:i*sqrt(d)不能這樣表達(dá),i只代表虛部,不是-1,另外,開根號(hào)的數(shù)是-d,而不是d.
*/
else
{
t=-b/(2*a);
printf("x1=x2=%lf\n",t);
}
}
(1): 浮點(diǎn)數(shù)存儲(chǔ)在內(nèi)存中是不規(guī)則的比如14.6在內(nèi)存中儲(chǔ)存的就是14.599999,也就是近似存儲(chǔ)在內(nèi)存中的,而1e-6就幾乎是0,如果你填0是不太容易得到結(jié)果的
(2): fabs()是求浮點(diǎn)數(shù)絕對(duì)值的函數(shù),是被定義在math.h這個(gè)頭文件里的,還有abs()是求整數(shù)絕對(duì)值的
(3): a是實(shí)參,在用的時(shí)候,a被傳入fabs()這個(gè)函數(shù),然后經(jīng)過運(yùn)算,由fabs()返回函數(shù)值,也就是a的絕對(duì)值,fasb(a)這個(gè)表達(dá)式的值就是a的絕對(duì)值
(4): 是的,直到小于0.000001他才會(huì)停止運(yùn)行
PS: fabs()在VC6中的原型:double fabs( double x );。