#includestdio.h
10年積累的網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站策劃后付款的網(wǎng)站建設(shè)流程,更有渝北免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
#includemath.h
void m(float a,float b,float c)
{
double x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("方程的根是%.2lf和%.2lf",x1,x2);
}
void n(float a,float b,float c)
{
double x;
x=(-b)/(2*a);
printf("方程的根為%.2lf",x);
}
void f(float a,float b,float c)
{
printf("方程無實數(shù)根\n");
}
main()
{
float a,b,c;
printf("請輸入a,b,c的值\n");
scanf("%f%f%f",a,b,c);
if(b*b-4*a*c0)
m(a,b,c);
if(b*b-4*a*c==0)
n(a,b,c);
if(b*b-4*a*c0)
f(a,b,c);
}
int GetRoot(float a, float b, float c ,double* root){
double delta, deltasqrt ;
delta = b* b - 4*a*c ;
if(delta0) return 0 ;
deltasqrt = sqrt(delta) ;
if (a!=0.0){
root[0] = (deltasqrt - b)/(2.0*a) ;
root[1] = ?(-deltasqrt - b)/(2.0*a) ;
}
if (root[0] == root[1]) return 1;
else return 2 ;
}
int main(void){
//計算方程的根
float ?a = 2.0,b =6.0,c=3.0 ;//a,b,c s是參數(shù)
double root[2] ;//root是得到的兩個根
int n = GetRoot(a,b,c,root) ;
if (n1){
printf("方程無根") ;
}else{
printf("方程的解為:%f,%f",root[0],root[1]) ;
}
}
擴(kuò)展資料:
C語言是一門面向過程、抽象化的通用程序設(shè)計語言,廣泛應(yīng)用于底層開發(fā)。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產(chǎn)生少量的機(jī)器語言以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的高效率程序設(shè)計語言。盡管C語言提供了許多低級處理的功能,但仍然保持著跨平臺的特性,以一個標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在包括一些類似嵌入式處理器以及超級計算機(jī)等作業(yè)平臺的許多計算機(jī)平臺上進(jìn)行編譯。
C語言特點(diǎn):
(1)簡潔的語言
C語言包含有各種控制語句僅有9種,關(guān)鍵字也只有32
個,程序的編寫要求不嚴(yán)格且多以小寫字母為主,對許多不必要的部分進(jìn)行了精簡。實際上,語句構(gòu)成與硬件有關(guān)聯(lián)的較少,且C語言本身不提供與硬件相關(guān)的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統(tǒng)所支持的各類庫進(jìn)行編程,故c語言擁有非常簡潔的編譯系統(tǒng)。
(2)具有結(jié)構(gòu)化的控制語句
C語言是一種結(jié)構(gòu)化的語言,提供的控制語句具有結(jié)構(gòu)化特征,如for語句、if?else語句和switch語句等??梢杂糜趯崿F(xiàn)函數(shù)的邏輯控制,方便面向過程的程序設(shè)計。
(3)豐富的數(shù)據(jù)類型
C語言包含的數(shù)據(jù)類型廣泛,不僅包含有傳統(tǒng)的字符型、整型、浮點(diǎn)型、數(shù)組類型等數(shù)據(jù)類型,還具有其他編程語言所不具備的數(shù)據(jù)類型,其中以指針類型數(shù)據(jù)使用最為靈活,可以通過編程對各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行計算。
(4)豐富的運(yùn)算符
C語言包含34個運(yùn)算符,它將賦值、括號等均視作運(yùn)算符來操作,使C程序的表達(dá)式類型和運(yùn)算符類型均非常豐富。
(5)可對物理地址進(jìn)行直接操作
C語言允許對硬件內(nèi)存地址進(jìn)行直接讀寫,以此可以實現(xiàn)匯編語言的主要功能,并可直接操作硬件。C語言不但具備高級語言所具有的良好特性,又包含了許多低級語言的優(yōu)勢,故在系統(tǒng)軟件編程領(lǐng)域有著廣泛的應(yīng)用。
(6)代碼具有較好的可移植性
C語言是面向過程的編程語言,用戶只需要關(guān)注所被解決問題的本身,而不需要花費(fèi)過多的精力去了解相關(guān)硬件,且針對不同的硬件環(huán)境,在用C語言實現(xiàn)相同功能時的代碼基本一致,不需或僅需進(jìn)行少量改動便可完成移植,這就意味著,對于一臺計算機(jī)編寫的C程序可以在另一臺計算機(jī)上輕松地運(yùn)行,從而極大地減少了程序移植的工作強(qiáng)度
(7)可生成的高質(zhì)量目標(biāo)代碼,高執(zhí)行效率的程序
與其他高級語言相比,C語言可以生成高質(zhì)量和高效率的目標(biāo)代碼,故通常應(yīng)用于對代碼質(zhì)量和執(zhí)行效率要求較高的嵌入式系統(tǒng)程序的編寫。
采用C語言編程解方程,有兩種情況:
1 簡單的方程,比如一元一次方程,或者多元一次方程,以及一元二次方程等,這類數(shù)學(xué)上有固定的解題方法的,可以在程序中輸入?yún)?shù),并按照數(shù)學(xué)方法,進(jìn)行求解。
2 復(fù)雜的方程,比如高次方程,或者積分方程等,對于這類問題,在數(shù)學(xué)上有著自己的解法,但是移植到計算機(jī)中操作會比較繁瑣,不易于編程實現(xiàn)。所以這類方程在計算機(jī)領(lǐng)域中,專門開發(fā)了更高效的算法,不適于筆算,但更符合計算機(jī)的工作方式。這時需要查找或?qū)W習(xí)對應(yīng)算法并實現(xiàn)。
#includestdio.h
double
val(double
a00,double
a11,double
a01,double
a10)
{
return
a00*a11-a01*a10;
}
void
main()
{
double
a1,b1,c1,a2,b2,c2;
double
m1,m2,m3;
printf("Please
input
a1,b1,c1\n");
scanf("%lf%lf%lf",a1,b1,c1);
printf("Please
input
a2,b2,c2\n");
scanf("%lf%lf%lf",a2,b2,c2);
m1
=
val(a1,b2,a2,b1);
m2
=
val(c1,b2,c2,b1);
m3
=
val(c1,a2,c2,a1);
if(m1==0){
if(m2==0
m3==0)
printf("無數(shù)解\n");
else
printf("無解\n");
}else
printf("x=%lf,y=%lf\n",m2/m1,-m3/m1);
}
這個是先求行列式的值,然后判斷其是否為0,討論解的情況,當(dāng)有唯一解的時候,輸出x和y的值。
val()函數(shù)用于計算2x2行列式的值。
有不明白的地方可以追問,望采納:)