當前位置:首頁 » 編程語言 » c語言求ax平方十bx十c0的實數解
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言求ax平方十bx十c0的實數解

發布時間: 2022-08-20 09:27:43

⑴ 用c語言求ax^2+bx+c=0 的解,我寫的運行不了,幫我找找錯誤吧(初學者)

有些常識性錯誤。我一個個給你指出來。

1.
scanf("%f%f%f,&a,%b,%c"); //引號的位置和b、c前面的符號錯了
改為 scanf("%f%f%f",&a,&b,&c);

2.printf("方程是:%.3f*x*x+%.3f*x+%.3f=0\n",a,b,c);
//float數據用%f表示就行了,不知道你還搞個.3來干什麼

改為 printf("方程是:%f*x*x+%f*x+%f=0\n",a,b,c);

3.
if(a=0) //要用==號來表示比較,=號只能賦值.
if (b=0) //你要學會用{}來表示if的嵌套,不然,程
if(c=0) //序默認的是,若if中的條件不滿足,則跳
printf("無窮根"); //過該if語句執行下一行,沒起到作用
else printf("無解");
else
printf("%f\n",-c/b);

改為:
if(a==0) //不過建議這里最好寫成if(abs(a)<0.00001),因為根據編
{ //程規范化的要求,float型(浮點數)不要與0比較,判斷它
if (b==0) //是否為0的方法是,看它是否在一定誤差(如0.00001)內
{ //,下同。
if(c==0)
{
printf("無窮根");
}
else printf("無解");
}
else printf("%f\n",-c/b);
}

4.
else
if(d<0)
//else包含的語句如果不只一句,要用{}將它括起來,不然默認只執行第一句
printf("無解");
else
printf ("x1=%f,x2=%f",(-b+sqrt(d))/2/a,(-b-sqrt(d))/2/a);
} //除法的表達有點亂,而且錯了

改為:
else
{
if(d<0) printf("無解");
else printf ("x1=%f,x2=%f",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
}
}

樓主具備一定的編程能力,但是細節問題不少啊。好好加油!

⑵ c語言求ax²+bx+c=0的解

#include<stdio.h>

#include<math.h>

#definedeatapow(b,2)-4*a*c

intmain()

{

doublea,b,c;

scanf("%lf%lf%lf",&a,&b,&c);

if(deata<0)printf("方程無解 ");

elseif(deata==0)printf("方程有兩個相同的解:%lf",(-b/2*a));

elseif(deata>0)printf("方程有兩個不一樣的解分別為%lf%lf",(-b+sqrt(deata))/2*a,(-b-sqrt(deata))/2*a);

return0;

}

(2)c語言求ax平方十bx十c0的實數解擴展閱讀

二次函數y=ax²+bx+c的意義

1、a的符號確定拋物線的開口方向。

2、a,b共同確定拋物線的對稱軸x=﹣b/2a

3、c確定拋物線與y軸的交點(0,c)是在x軸的上方、下方或原點.

4、b²-4ac的符號確定拋物線與x軸的位置關系。

5、若△=b²-4ac>0,設拋物線與x軸的兩個交點為A(x₁,0),B(x₂,0),則①A,B的中點(x₁+x₂/2,0)為拋物線的

對稱軸與x軸的交點(﹣b/2a,0),即x₁+x₂/2=﹣b/2a

⑶ C語言:求ax^2+bx+c=0方程的解

C語言:求ax^2+bx+c=0方程的解過程如下:

#include <stdio.h>
#include <math.h>
int main()
{

// 定義變數
double a, b, c, determinant, root1,root2, realPart, imaginaryPart;
printf("Enter coefficients a, b and c: ");//提示輸入三個參數
scanf("%lf %lf %lf",&a, &b, &c); //輸入三個系數
determinant = b*b-4*a*c; //求出δ的值

// 判斷如果determinant 大於0,方程就有兩個實數根

if (determinant > 0)
{
// sqrt() 函數求出平方根
root1 = (-b+sqrt(determinant))/(2*a);
root2 = (-b-sqrt(determinant))/(2*a);
printf("root1 = %.2lf and root2 = %.2lf",root1 , root2);
}

//有兩個相等的實數根
else if (determinant == 0)
{
root1 = root2 = -b/(2*a);
printf("root1 = root2 = %.2lf;", root1);
}
//沒有實數根,只有虛數根
else
{
realPart = -b/(2*a); //獲取根的實部
imaginaryPart = sqrt(-determinant)/(2*a);//獲取根的虛部

printf("root1 = %.2lf+%.2lfi and root2 = %.2f-%.2fi", realPart, imaginaryPart, realPart, imaginaryPart); //列印虛數根
}
return 0;
}

測試驗證:

輸入 a, b and c: 2.3
4
5.6
根是: -0.87+1.30i and -0.87-1.30i

⑷ C語言編程,求一元二次方程 ax2+bx+c=0 的解,謝謝

#include<iostream>

#include<cmath>

using namespace std;

int main()

{

for (int i=0;i<2;i++)

{

double a,b,c,delta,p,q;

cin>>a>>b>>c;

delta=b*b-4*a*c;

p=-b/(2*a);

q=sqrt(fabs(delta))/(2*a);

if (delta>=0)

cout<<p+q<<endl<<p-q<<endl;

else

{

cout<<p<<"+j"<<q;

cout<<endl<<p<<"-j"<<q<<endl;

}

}

return 0;

}

(4)c語言求ax平方十bx十c0的實數解擴展閱讀:

return表示從被調函數返回到主調函數繼續執行,返回時可附帶一個返回值,由return後面的參數指定。return通常是必要的,因為函數調用的時候計算結果通常是通過返回值帶出的。

如果函數執行不需要返回計算結果,也經常需要返回一個狀態碼來表示函數執行的順利與否(-1和0就是最常用的狀態碼),主調函數可以通過返回值判斷被調函數的執行情況。

如果函數名前有返回類型定義,如int,double等就必須有返回值,而如果是void型,則可以不寫return,但這時即使寫了也無法返回數值。

⑸ 求一元二次方程ax2+bx+c=0的解。a,b,c為任意實數。c語言編程

#include<stdio.h>

#include<math.h>

int main(void){

double a,b,c;

double x1,x2,x,t,p,q

printf("輸入一元二次方程的系數a,b,c:");

scanf("%lf %lf %lf",&a,&b,&c);

t=b*b-4*a*c;

if(a==0&&b==0&&c==0)

printf("方程無窮解! ");

if(a==0&&b==0&&c!=0)

printf("方程無解! ");

if(a==0&&b!=0){

x=-c/b;

printf("方程有一個根:x=%.2f ",x);

}

if(a!=0&&b!=0){

if(t==0){

x=-b/(2*a);

printf("方程有兩個相同的實根:x1=x2=%.2f ",x);

}

if(t>0){

x1=(-b+sqrt(t))/(2*a);

x2=(-b-sqrt(t))/(2*a);

printf("方程有兩個不同實根:x1=%.2f x2=%.2f ",x1,x2);

}

if(t<0){

p=(-b)/(2*a);

q=sqrt(-t)/(2*a);

printf("方程有兩個不同虛根:x1=%.2f+%.2fi x2=%.2f-%.2fi ",p,q,p,q);

}

}

return 0;

}

(5)c語言求ax平方十bx十c0的實數解擴展閱讀

main()

{

float a,b,c;

x09float temp;//計算b*b-4*a*c

x09float num;//開根號

x09float x1,x2;//方程的根

x09printf("Enter a,b,c:");

x09scanf("%f %f %f",&a,&b,&c);

x09temp=b*b-4*a*c;

x09num=sqrt(temp);

x09if(temp>0) //兩個不同實根

x09{

x09x09x1=(-b+num)/(2*a);

x09x09x2=(-b-num)/(2*a);

x09x09printf("x1=%0.2f,x2=%0.2f ",x1,x2);//保留兩位輸出

x09}

x09if(temp==0)//一個相同實根

x09{

x1=x2=(-b)/(2*a);

printf("x1=x2=%0.2f ",x1);//保留兩位輸出

x09}

x09if(temp

⑹ 用c語言編寫:求方程ax2+bx+c=0的實數根。a,b,c由鍵盤輸入,a≠0且b2-4ac>0;謝謝!

#include<stdio.h>

#include<math.h>

floatx1,x2;

main()

{

voidf1(floata1,floata2,floata3);

voidf2(floatb1,floatb2,floatb3);

voidf3(floatc1,floatc2,floatc3);

floata,b,c,t;

printf("Inputa=,b=,c= ");

scanf("a=%f,b=%f,c=%f",&a,&b,&c); //輸入格式為a=1,b=5,c=6;

t=b*b-4*a*c;

if(fabs(t)<=1e-6) // 判斷t==0 的情況。

f1(a,b,c);

else

if(t>1e-6) // t>0的情況

f2(a,b,c);

else

f3(a,b,c);

}

voidf1(floata1,floata2,floata3)

{

x1=x2=-a2/(2*a1);

printf("x1=x2=%f ",x1);

}


voidf2(floatb1,floatb2,floatb3)

{

floatdisc;

disc=sqrt(b2*b2-4*b1*b3);

x1=(-b2+disc)/(2*b1);

x2=(-b2-disc)/(2*b1);

printf("x1=%f x2=%f ",x1,x2);

}


voidf3(floatc1,floatc2,floatc3)

{

floatdisc,t1,t2;

disc=sqrt(4*c3*c1-c2*c2);

t1=-c2/(2*c1);

t2=disc/(2*c1);

printf("x1=%f+%fi ",t1,t2);

printf("x2=%f-%fi ",t1,t2);

}

⑺ 用c語言語言求求方程ax^2+bx+c=0的實數根,abc由鍵盤輸入,a不等於0且b^2—4a

/*一.關於自動解一元二次方程*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
double a,b,c,del,k;
s:
printf ("a=");scanf ("%lf",&a);
printf ("b=");scanf ("%lf",&b);
printf ("c=");scanf ("%lf",&c);
del=pow (b,2)-4*a*c;
if (a==0) if (b==0&&c==0) printf ("If you want,it can be anything~");
else if (b==0&&c!=0) {printf ("Get out,don't ask me!\n");exit (0);}
else printf ("%.0lfX+%.0lf=0\nX=%lf",b,c,-c/b);//a為0時為一元一次方程
else if (0==del) printf ("有唯一解:%lfX^2+%lfX+%lf=0\nX=%lf",a,b,c,-b/(2*a));//del等於0
else if (0>del) printf ("無實數解!");
else printf ("%lfX^2+%lfX+%lf=0\nX1=%lf\nX2=%lf",a,b,c,(-b+sqrt(del))/2*a,(-b-sqrt(del))/2*a);
printf ("\ncontinue?");
scanf ("%d",&k);if (k==1) goto s;
return 0;
}

⑻ 【C語言】求ax^2+bx+c=0方程的解。

scanf("%lf,%lf,%lf",&a,&b,&c);

是lf不是1f,你寫錯了。