這個簡單啊
專注于為中小企業(yè)提供成都網(wǎng)站制作、做網(wǎng)站服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)全南免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
#includestdio.h
#includemath.h
main()
{
double a,b,c,w;
printf("請輸入三個數(shù)(方程的系數(shù)),中間用空格分開\n");
scanf("%lf%lf%lf",a,b,c);
w=b*b-4*a*c;
if (w0)printf("方程無解\n");
else if(w==0)printf("方程有一個解:x=%lf\n",-b/(2*a));
else printf("方程有兩個解:x1=%lf,x2=%lf\n",(-b+sqrt(w))/(2*a),(-b-sqrt(w))/(2*a));
}
一:scanf("%3f%3f%3f",a,b,c); 這里要求輸入數(shù)據(jù)必須為三位數(shù),最好改成:
scanf("%f%f%f",a,b,c); 去掉限定
二:
void tonggen(float a,float b,float k)
//float a,b,k; 如果這樣定義,則上一行的函數(shù)定義應該寫成:void tonggen( a, b, k) 二者不能同存
{
float x;
x=(-b)/(2*a); //這里應該為2*a
printf("二次函數(shù)為同根為x=%3f",x);
}
你的
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);
}
還有。。
#include stdio.h
int main(void)
{
double a,b,c,d,e;
double x1,x2;
printf("請輸入ax^2+bx +c = 0中a,b,c的值");
scanf("%lf,%lf,%lf",a,b,c);
e = b * b - 4 * a * c;
if (e0) {
printf("無解,請重新輸入\n");
scanf("%lf,%lf,%lf",a,b,c);
}
printf("輸入正確,正在計算....\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;
}
我已經(jīng)按你的意思修改了,也運行出來了,希望對你有幫助,代碼附帶在下面:
#includestdio.h
#includemath.h
float t,x1,x2;
void main()
{
void situ1(float a,float b,float c);
void situ2(float a,float b,float c);
void situ3();
float x,a,b,c;
scanf("%f%f%f",a,b,c);
if (a==0)
{
x=-c/b;
printf("x=%.2f\n",x);
}
else
{
t=b*b-4*a*c;
if (t0)
situ1(a,b,c);
else if(t==0)
situ2(a,b,c);
else
situ3();
}
}
void situ1(float a,float b,float c)
{
x1=(-b+sqrt(t))/(2*a);
x2=(-b-sqrt(t))/(2*a);
printf("x1=%.2f\tx2=%.2f\n",x1,x2);
}
void situ2(float a,float b,float c)
{
x1=x2=(-b+sqrt(t))/(2*a);
printf("x1=x2=%.2f\n",x1);
}
void situ3()
{
printf("沒有實根\n");
}
pre t="code" l="cpp"#include stdio.h
#include math.h
int main()
{
float a, b, c, jud;
printf ("輸入二次方程的三個系數(shù)(第一個不能為0):");
scanf ("%f %f %f", a, b, c);
jud = b * b - 4 * a * c; //根的判別式
if (jud 0)
{
printf ("該方程有兩個不相等的實根:\n");
printf ("x1 = %.2f\n",(-b + sqrt (jud)) / (2 * a));
printf ("x2 = %.2f\n", (-b - sqrt (jud)) / (2 * a));
}
else if (jud == 0)
{
printf ("該方程有兩個相等的實根:\n");
printf ( "x1 = x2 = %.2f\n", -b / (2 * a));
}
else
printf ("This equation haven't real root\n");
return 0;
}