#include stdio.h
為印江等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及印江網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、印江網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
#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);
}
}
#includestdio.h
#includemath.h
void?zero(float?a,float?b);
void?left();
void?right(float?a,float?b,float?c);
void?main()
{
float?a,b,c,d;
printf("請(qǐng)輸入a,b,c的值:\n");
scanf("%f?%f?%f",a,b,c);
d=b*b-4*a*c;
if(d==0)zero(a,b);
if(d0)left();
if(d0)right(a,b,c);
}
void?zero(float?a,float?b)
{
printf("%f",-b/2*a);
}
void?left()
{
printf("no?roots!\n");
}
void?right(float?a,float?b,float?c)
{
float?x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("%f?%f?\n",x1,x2);
}
我沒運(yùn)行代碼 不過問題貌似在else if(fabs(disc)1e-6)
你的第1個(gè)if判斷delta 就是那個(gè)disc 就是那么三角形樣的東西 為0 那么fabs(disc)=1e-6浮點(diǎn)數(shù)為0
你的第2個(gè)elseif 我想你要判斷的是disc為正數(shù) 那么可以直接開方 那你應(yīng)該disc1e-6而不是fabs(disc)1e-6 其實(shí)disc0就行了
最后個(gè)else你是想disc為負(fù)數(shù) 那么要有i 我建議你寫上disc-(1e-6)或者直接小于0
最后的最后 你一開始f=sqrt(disc)/(2*a); 有驗(yàn)算disc是大于等于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;
}
#include stdio.h
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;
}