選擇結(jié)構(gòu)程序結(jié)構(gòu)設(shè)計(jì)ppt課件_第1頁(yè)
選擇結(jié)構(gòu)程序結(jié)構(gòu)設(shè)計(jì)ppt課件_第2頁(yè)
選擇結(jié)構(gòu)程序結(jié)構(gòu)設(shè)計(jì)ppt課件_第3頁(yè)
選擇結(jié)構(gòu)程序結(jié)構(gòu)設(shè)計(jì)ppt課件_第4頁(yè)
選擇結(jié)構(gòu)程序結(jié)構(gòu)設(shè)計(jì)ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第 4 4 章章選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式二、邏輯運(yùn)算符和邏輯表達(dá)式二、邏輯運(yùn)算符和邏輯表達(dá)式三、運(yùn)用三、運(yùn)用ifif語(yǔ)句實(shí)現(xiàn)的選擇構(gòu)造語(yǔ)句實(shí)現(xiàn)的選擇構(gòu)造四、條件運(yùn)算符和條件表達(dá)式四、條件運(yùn)算符和條件表達(dá)式 五、五、switchswitch語(yǔ)句語(yǔ)句 六、選擇構(gòu)造程序舉例六、選擇構(gòu)造程序舉例主要內(nèi)容主要內(nèi)容關(guān)系運(yùn)算符關(guān)系運(yùn)算符 = = != (6種種)第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)優(yōu)先級(jí)優(yōu)先級(jí)賦值賦值 關(guān)系關(guān)系( 后后2前前4 ) 3一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式一、關(guān)系運(yùn)算符和

2、關(guān)系表達(dá)式219舉例舉例知知 a=5,b=4,c=3,d=7 求以下表達(dá)式的值求以下表達(dá)式的值a+b=c*dabca!=bbc10a != b c01算術(shù)運(yùn)算符的優(yōu)先級(jí)高于算術(shù)運(yùn)算符的優(yōu)先級(jí)高于關(guān)系運(yùn)算符關(guān)系運(yùn)算符不能用于判別不能用于判別b的值能否的值能否在在a 與與c 之間之間“運(yùn)算符的優(yōu)先級(jí)高于運(yùn)算符的優(yōu)先級(jí)高于“!=邏輯運(yùn)算符邏輯運(yùn)算符 !邏輯非邏輯非 &邏輯與邏輯與 |邏輯或邏輯或運(yùn)算規(guī)那運(yùn)算規(guī)那么么優(yōu)先次序優(yōu)先次序賦值賦值 | & 關(guān)系關(guān)系算術(shù)算術(shù) 3) | b 0雙目雙目單目單目二、邏輯運(yùn)算符和邏輯表達(dá)式二、邏輯運(yùn)算符和邏輯表達(dá)式第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)

3、造程序設(shè)計(jì)二、邏輯運(yùn)算符和邏輯表達(dá)式二、邏輯運(yùn)算符和邏輯表達(dá)式第五章第五章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)舉例舉例53 & 8 3) & (8 3 | (a=6)1邏輯運(yùn)算符兩側(cè)的運(yùn)算對(duì)象不但可邏輯運(yùn)算符兩側(cè)的運(yùn)算對(duì)象不但可以是和,也可以是或非的以是和,也可以是或非的整數(shù),也可是任何類(lèi)型的數(shù)據(jù)。系整數(shù),也可是任何類(lèi)型的數(shù)據(jù)。系統(tǒng)斷定規(guī)范:為假;非為真。統(tǒng)斷定規(guī)范:為假;非為真。當(dāng)當(dāng)“與運(yùn)算的左與運(yùn)算的左側(cè)為側(cè)為0,或者,或者“或運(yùn)或運(yùn)算的左側(cè)為算的左側(cè)為1時(shí),時(shí),右側(cè)的表達(dá)式不再右側(cè)的表達(dá)式不再進(jìn)展計(jì)算。進(jìn)展計(jì)算。短路短路景象景象#include void main() in

4、t a=1,b=1; if (a1&(b=5) a=4; printf(“%d,%d,a,b);1,1選擇構(gòu)造選擇構(gòu)造單分支單分支雙分支雙分支if (表達(dá)式表達(dá)式) 語(yǔ)句語(yǔ)句多分支多分支if (表達(dá)式表達(dá)式) 語(yǔ)句語(yǔ)句else 語(yǔ)句語(yǔ)句if (表達(dá)式表達(dá)式1) 語(yǔ)句語(yǔ)句else if (表達(dá)式表達(dá)式) 語(yǔ)句語(yǔ)句else 語(yǔ)句語(yǔ)句nif 語(yǔ)句的嵌套語(yǔ)句的嵌套switch語(yǔ)句語(yǔ)句第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造的分類(lèi)選擇構(gòu)造的分類(lèi)格式格式流程圖流程圖第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)if (表達(dá)式表達(dá)式) 語(yǔ)句語(yǔ)句三、三、if語(yǔ)句實(shí)現(xiàn)選擇構(gòu)造語(yǔ)句實(shí)現(xiàn)選擇構(gòu)

5、造 單分支單分支不成立(假、0)表達(dá)式語(yǔ)句塊成立(真、1)if (xy) printf(“%d,x);舉例舉例例例4.5第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)#include stdio.hint main( ) int num1,num2,max; printf(input two numbers: n ); scanf(%d%d,&num1,&num2); max=num1; if (maxnum2) max=num2; printf(max=%dn,max); return 0;56 41 max=56 三、三、if語(yǔ)句實(shí)現(xiàn)選擇構(gòu)造語(yǔ)句實(shí)現(xiàn)選擇構(gòu)造 單分支單分支輸

6、入兩個(gè)整數(shù),輸出其中較大的數(shù)。輸入兩個(gè)整數(shù),輸出其中較大的數(shù)。例例4.6第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)#include int main() float a,b,t=0; scanf(“%f,%f,&a,&b); if (ab) t=a; a=b; b=t; printf(“%5.2f,%5.2fn,a,b); return 0;3,4 3.00, 4.00if (ab) t=a; a=b; b=t;if (ab) t=a;a=b; b=t;3,4 4.00, 0.00當(dāng)某些語(yǔ)句作為一個(gè)整體當(dāng)某些語(yǔ)句作為一個(gè)整體出現(xiàn)的時(shí)候,必需是復(fù)合出現(xiàn)的時(shí)候,必需是復(fù)合語(yǔ)句的

7、方式。語(yǔ)句的方式。三、三、if語(yǔ)句實(shí)現(xiàn)選擇構(gòu)造語(yǔ)句實(shí)現(xiàn)選擇構(gòu)造 單分支單分支輸入兩個(gè)實(shí)數(shù),按由小到大的數(shù)序輸出它們。輸入兩個(gè)實(shí)數(shù),按由小到大的數(shù)序輸出它們。格式格式if (xy) printf(“%d,x);else printf(“%d,y);第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)if (表達(dá)式表達(dá)式) 語(yǔ)句語(yǔ)句else 語(yǔ)句語(yǔ)句三、三、if語(yǔ)句實(shí)現(xiàn)選擇構(gòu)造語(yǔ)句實(shí)現(xiàn)選擇構(gòu)造 雙分支雙分支舉例舉例流程圖流程圖第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)#include int main() float a,b,c,p,s; scanf(“%f,%f,%f,&a,&b,

8、&c); if (a+bc & a+cb & b+ca) p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c); printf(“s=%7.2fn,s); else printf(“Not a triangle!n); return 0;輸入三角形的三邊,求三角形的面積。輸入三角形的三邊,求三角形的面積。3,4,5s= 6.003,4,8Not a triangle!三、三、if語(yǔ)句實(shí)現(xiàn)選擇構(gòu)造語(yǔ)句實(shí)現(xiàn)選擇構(gòu)造 雙分支雙分支例例4.9輸入輸入a,b,c是三角形嗎?是三角形嗎?p (a+b+c)/2ssqrt(p*(p-a)*(p-b)*(p-c

9、)輸出輸出s 輸出輸出“Not a triangle!編程實(shí)現(xiàn)如下分段函數(shù)編程實(shí)現(xiàn)如下分段函數(shù),輸出結(jié)果保管輸出結(jié)果保管2位小數(shù)。位小數(shù)。y=0 x0 練習(xí)練習(xí)1#include #include int main() float x,y; scanf(“%f,&x); if(x=0) y=0; else y=sqrt(x); printf(“x=%.2f,y=%.2fn,x,y); return 0;這這4行包含行包含幾條語(yǔ)句?幾條語(yǔ)句?if(x0) y=sqrt(x);編程實(shí)現(xiàn)分段函數(shù)。編程實(shí)現(xiàn)分段函數(shù)。y=0 x01.0/x 0202x+1 10 x20例例4.11輸入輸入xx=

10、0是是否否y=0否否0 x10是是y=1.0/xx20是是否否y=5*x-10 x&x=10 x=10y=5*x-1if(x=0) y=0;else if(x=10) y=1.0/x; else if(x=20) y= y=2*x+1; else y=5*x-1;輸出輸出y第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)if (表達(dá)式表達(dá)式1) 語(yǔ)句組語(yǔ)句組else if (表達(dá)式表達(dá)式) 語(yǔ)句組語(yǔ)句組else if (表達(dá)式表達(dá)式n) 語(yǔ)句組語(yǔ)句組nelse 語(yǔ)句組語(yǔ)句組n+1三、三、if語(yǔ)句實(shí)現(xiàn)選擇構(gòu)造語(yǔ)句實(shí)現(xiàn)選擇構(gòu)造 多分支多分支1ifelse if方式方式#include std

11、io.hint main( ) float x,y; scanf(%f,&x); if(x=0) y=0.0; else if(x=10) y=1.0/x; else if(x=20) y= y=2*x+1; else y=5*x-1; printf(x=%.2f, y=%.2fn,x,y); return 0;第一次運(yùn)轉(zhuǎn):第一次運(yùn)轉(zhuǎn):5 x=5.00,y=0.2015 x=15.00,y=31.00第二次運(yùn)轉(zhuǎn):第二次運(yùn)轉(zhuǎn):21.67 x=21.67, y=107.35第三次運(yùn)轉(zhuǎn):第三次運(yùn)轉(zhuǎn):y=0 x01.0/x 0202x+1 10 x20程序如下:程序如下:編程實(shí)現(xiàn)分段函數(shù)編程實(shí)

12、現(xiàn)分段函數(shù) 換一種判別順序換一種判別順序y=0 x01.0/x 0202x+1 10 x20例例4.11輸入輸入xx=10是是否否y=1.0/x否否x=0是是y=0 x=20是是否否y=2*x+1y=5*x-1if(x=10) if(x=0) y=0; else y=1.0/x;else if(x=20) y=2*x+1; else y=5*x-1;輸出輸出yif(x=10) if(x=0) y=0;else y=1.0/x;else if(xb)d=a;else if (cb) d=c; else d=b;if (ab)if (cb) d=c;else d=b ;if (ab)if (cb)

13、 d=c;else d=b ;if (ab) if (cb) d=c; else d=b;else d=a;d=5d=3d=0d=4運(yùn)用運(yùn)用if語(yǔ)句中應(yīng)留意的問(wèn)題語(yǔ)句中應(yīng)留意的問(wèn)題 在在if關(guān)鍵字之后的括弧內(nèi)關(guān)鍵字之后的括弧內(nèi)為表達(dá)式,該表達(dá)式通常為表達(dá)式,該表達(dá)式通常是邏輯表達(dá)式或關(guān)系表達(dá)是邏輯表達(dá)式或關(guān)系表達(dá)式,但也可以是其它任何式,但也可以是其它任何合法的合法的C表達(dá)式表達(dá)式 條件判別表達(dá)式必需用括條件判別表達(dá)式必需用括弧括起來(lái),后面沒(méi)有分號(hào)。弧括起來(lái),后面沒(méi)有分號(hào)。但在語(yǔ)句之后必需加分號(hào)。但在語(yǔ)句之后必需加分號(hào)。 假設(shè)希望在滿足假設(shè)希望在滿足/不滿足不滿足條件時(shí)執(zhí)行一組條件時(shí)執(zhí)行一組(

14、多個(gè)多個(gè))語(yǔ)語(yǔ)句,那么必需把這一組語(yǔ)句,那么必需把這一組語(yǔ)句用句用 括起來(lái)組成一個(gè)復(fù)括起來(lái)組成一個(gè)復(fù)合語(yǔ)句合語(yǔ)句 #include int main() float a,b,c,p,s; scanf(“%f,%f,%f,&a,&b,&c); if (a+bc & a+cb & b+ca) p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c); printf(“s=%7.2fn,s); else printf(“Not a triangle!n); return 0;條件運(yùn)算符條件運(yùn)算符條件表達(dá)式條件表達(dá)式舉例舉例if (ab)

15、max=a;else max=b;第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)表達(dá)式?表達(dá)式:表達(dá)式表達(dá)式?表達(dá)式:表達(dá)式max= (ab)? a : b;條件運(yùn)算符條件運(yùn)算符的運(yùn)用條件的運(yùn)用條件假設(shè)假設(shè)if語(yǔ)句中,在表達(dá)式為語(yǔ)句中,在表達(dá)式為“真和真和“假時(shí),都只執(zhí)行假時(shí),都只執(zhí)行一個(gè)賦值語(yǔ)句給同一個(gè)變量賦值,那么可以用簡(jiǎn)單的一個(gè)賦值語(yǔ)句給同一個(gè)變量賦值,那么可以用簡(jiǎn)單的條件運(yùn)算符來(lái)處置。條件運(yùn)算符來(lái)處置。取值取值表達(dá)式表達(dá)式1為真,那么取值為表達(dá)式為真,那么取值為表達(dá)式2的值;的值;表達(dá)式表達(dá)式1為假,那么取值為表達(dá)式為假,那么取值為表達(dá)式3的值。的值。四、條件運(yùn)算符和條件表達(dá)式四、條件

16、運(yùn)算符和條件表達(dá)式右結(jié)合方向右結(jié)合方向運(yùn)用條件表達(dá)式求兩個(gè)數(shù)的較大值。本人看運(yùn)用條件表達(dá)式求兩個(gè)數(shù)的較大值。本人看 #include stdio.hint main( ) float num1,num2,max=0; scanf(%f,%f,&num1,&num2); max=(num1num2)?num1:num2; printf(%5.2fn,max); return 0;例例4.14第一次運(yùn)轉(zhuǎn):第一次運(yùn)轉(zhuǎn):3.2,4 4.00第二次運(yùn)轉(zhuǎn):第二次運(yùn)轉(zhuǎn):4,3.2 4.00思索思索一個(gè)簡(jiǎn)單的菜單項(xiàng)選擇擇一個(gè)簡(jiǎn)單的菜單項(xiàng)選擇擇程序。程序。例如例如1例如例如2if-elseswi

17、tch開(kāi)關(guān)語(yǔ)句開(kāi)關(guān)語(yǔ)句 第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)switch (表達(dá)式表達(dá)式) case 常量表達(dá)式常量表達(dá)式1:語(yǔ)句組:語(yǔ)句組1 case 常量表達(dá)式常量表達(dá)式2:語(yǔ)句組:語(yǔ)句組2 case 常量表達(dá)式常量表達(dá)式3:語(yǔ)句組:語(yǔ)句組3 case 常量表達(dá)式常量表達(dá)式n:語(yǔ)句組:語(yǔ)句組n default: 語(yǔ)句組語(yǔ)句組n+1五、五、switch 語(yǔ)句實(shí)現(xiàn)多分支語(yǔ)句實(shí)現(xiàn)多分支break;執(zhí)行過(guò)程執(zhí)行過(guò)程定位入口、依次執(zhí)行、遇定位入口、依次執(zhí)行、遇break跳出跳出整型或字符型整型或字符型例例4.17#include void main() char grade; printf

18、(“請(qǐng)輸入考試等級(jí)請(qǐng)輸入考試等級(jí)AD:); scanf(“%c,&grade) ; switch (grade) case A: printf(“80100n); case B: printf(“7079n); case C: printf(“6069n); case D: printf(“60n); default: printf(“errorn); B根據(jù)輸入的考試成果等級(jí)打印出百分制分?jǐn)?shù)段。根據(jù)輸入的考試成果等級(jí)打印出百分制分?jǐn)?shù)段。A: 80100 B: 7079 C: 6069 D: 60闡明:應(yīng)在每一個(gè)闡明:應(yīng)在每一個(gè)printf后加后加break語(yǔ)句語(yǔ)句第四章第四章 選擇構(gòu)

19、造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)7079606960Error#include void main() char grade; printf(“請(qǐng)輸入考試等級(jí)請(qǐng)輸入考試等級(jí)AD:); scanf(“%c,&grade) switch (grade) case A: printf(“80100n);break; case B: printf(“7079n);break; case C: printf(“6069n);break; case D: printf(“60n);break; default: printf(“errorn); B7079最后一行的最后一行的break可以省略??梢允÷?/p>

20、。第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)例例4.17根據(jù)輸入的考試成果等級(jí)打印出百分制分?jǐn)?shù)段。根據(jù)輸入的考試成果等級(jí)打印出百分制分?jǐn)?shù)段。A: 80100 B: 7079 C: 6069 D: 60思索思索例如例如1例如例如2思索思索(例例4.18)#include void main() int score; printf(“請(qǐng)輸入考試成果請(qǐng)輸入考試成果0100:); scanf(“%d,&score); if(score100) printf(“請(qǐng)輸入請(qǐng)輸入0100之間的整數(shù)之間的整數(shù)n); else if(score=80) printf(“An); else if(sco

21、re=70) printf(“Bn); else if(score=60) printf(“Cn); else printf(“Dn);根據(jù)輸入的考試成果百分制整數(shù)打印出等級(jí)程度。根據(jù)輸入的考試成果百分制整數(shù)打印出等級(jí)程度。運(yùn)用運(yùn)用ifelse語(yǔ)句實(shí)現(xiàn)語(yǔ)句實(shí)現(xiàn)A: 80100 B: 7079 C: 6069 D: 60思索:運(yùn)用思索:運(yùn)用switch語(yǔ)句語(yǔ)句如何實(shí)現(xiàn)?如何實(shí)現(xiàn)?程序程序第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)#include void main() int score; printf(“請(qǐng)輸入考試成果請(qǐng)輸入考試成果0100:); scanf(“%d,&score)

22、; switch (score) case 80100: printf(“An);break; case 7079: printf(“Bn);break; case 6069: printf(“Cn);break; case 60: printf(“Dn);break; default: printf(“請(qǐng)輸入請(qǐng)輸入0100之間的整數(shù)之間的整數(shù)n); 根據(jù)輸入的考試成果百分制整數(shù)打印出等級(jí)程度。根據(jù)輸入的考試成果百分制整數(shù)打印出等級(jí)程度。運(yùn)用運(yùn)用switch語(yǔ)句實(shí)現(xiàn)語(yǔ)句實(shí)現(xiàn)A: 80100 B: 7079 C: 6069 D: 60思索:本程序思索:本程序有問(wèn)題么?有問(wèn)題么?程序程序思索思索(

23、例例4.18)#include void main() int score; printf(“請(qǐng)輸入考試成果請(qǐng)輸入考試成果0100:); scanf(“%d,&score); switch (score) case 0: printf(“Dn);break; case 1: printf(“Dn);break; case 2: printf(“Dn);break; case 3: printf(“Dn);break; case 100:printf(“An);break; default: printf(“請(qǐng)輸入請(qǐng)輸入0100之間的整數(shù)之間的整數(shù)n); 太費(fèi)事了太費(fèi)事了有沒(méi)有簡(jiǎn)單的有沒(méi)

24、有簡(jiǎn)單的方法呢?方法呢?改良改良程序程序1101種情況種情況思索思索(例例4.18)根據(jù)輸入的考試成果百分制整數(shù)打印出等級(jí)程度。根據(jù)輸入的考試成果百分制整數(shù)打印出等級(jí)程度。運(yùn)用運(yùn)用switch語(yǔ)句實(shí)現(xiàn)語(yǔ)句實(shí)現(xiàn)A: 80100 B: 7079 C: 6069 D: 60#include void main() int score, p; printf(“請(qǐng)輸入考試成果請(qǐng)輸入考試成果0100:); scanf(“%c,&score); p=score/10; switch (p) case 0: printf(“Dn);break; case 1: printf(“Dn);break; c

25、ase 2: printf(“Dn);break; case 3: printf(“Dn);break; case 4: printf(“Dn);break; case 5: printf(“Dn);break; case 6: printf(“Cn);break; case 7:printf(“Bn);break; case 8:printf(“An);break; case 9:printf(“An);break; case 10:printf(“An);break; default: printf(“請(qǐng)輸入請(qǐng)輸入0100之間的整數(shù)之間的整數(shù)n); 改良改良程序程序211種情況種情況思索:

26、不同思索:不同case值時(shí)執(zhí)行一樣的值時(shí)執(zhí)行一樣的操作,能否可以操作,能否可以合并?合并?第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)#include void main() int score, p; printf(“請(qǐng)輸入考試成果請(qǐng)輸入考試成果0100:); scanf(“%c,&score); p=score/10; switch (p) case 0: case 1: case 2: case 3: case 4: case 5: printf(“Dn);break; case 6: printf(“Cn);break; case 7:printf(“Bn);break; c

27、ase 8: case 9: case 10:printf(“An);break; default: printf(“請(qǐng)輸入請(qǐng)輸入0100之間的整數(shù)之間的整數(shù)n); 改良改良程序程序3留意:多個(gè)留意:多個(gè)case共共用一組執(zhí)行語(yǔ)句時(shí),用一組執(zhí)行語(yǔ)句時(shí),共用的執(zhí)行語(yǔ)句寫(xiě)共用的執(zhí)行語(yǔ)句寫(xiě)在最后一個(gè)在最后一個(gè)case的的后面。后面。第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)例例4.10求方程求方程 ax2+bx+c=0 的解。的解。(自學(xué)自學(xué))真真a=0真真假假輸出輸出“該該方程不是方程不是二次方程二次方程b2-4ac=0真真輸出兩個(gè)實(shí)根:輸出兩個(gè)實(shí)

28、根:x1,x2輸出兩輸出兩個(gè)相等個(gè)相等實(shí)根實(shí)根:假假b2-4ac0假假aacbbx2412aacbbx2422計(jì)算復(fù)根的實(shí)部和虛部:計(jì)算復(fù)根的實(shí)部和虛部:實(shí)部實(shí)部虛部虛部abp2aacbq2)4(2輸出兩個(gè)復(fù)根:輸出兩個(gè)復(fù)根:p+qi,p-qiab2六、選擇構(gòu)造程序設(shè)計(jì)舉例六、選擇構(gòu)造程序設(shè)計(jì)舉例第四章第四章 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)#include #include void main() float a,b,c,disc,x1,x2,p,q; scanf(%f%f%f,&a,&b,&c); if (a=0) printf(該方程不是二次方程該方程不是二次方程

29、); else disc=b*b-4*a*c; if (disc=0) printf(“該方程有兩個(gè)相等的實(shí)根該方程有兩個(gè)相等的實(shí)根:%8.4fn,-b/(2*a); else if(disc0) x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf(“該方程有兩個(gè)不等的實(shí)根該方程有兩個(gè)不等的實(shí)根:%8.4f and %8.4fn,x1,x2); else p=-b/(2*a); q=sqrt(-disc)/(2*a); printf(“該方程有兩個(gè)復(fù)根該方程有兩個(gè)復(fù)根: n); printf(%8.4f + %8.4f in, p, q); printf(%8.4f + %8.4f in, p, q); 3 4 1該方程有兩個(gè)不等的實(shí)根該方程有兩個(gè)不等的實(shí)根: -0.3333 and -1.00004 3 1該方程有兩個(gè)復(fù)根該方程有兩個(gè)復(fù)根: -0.3750 + 0.3307 i -0.3750 + 0.3307 i例例4.10求方程求方程 ax2+bx+c=0 的解。的解。(各種方式各種方式)第一次運(yùn)轉(zhuǎn):第一次運(yùn)轉(zhuǎn):第二次運(yùn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論