版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第4章選擇結(jié)構(gòu)程序設(shè)計4.1選擇結(jié)構(gòu)和條件判斷4.2用if語句實現(xiàn)選擇結(jié)構(gòu)4.3關(guān)系運算符和關(guān)系表達式4.4邏輯運算符和邏輯表達式4.5條件運算符和條件表達式4.6選擇結(jié)構(gòu)的嵌套4.7用switch語句實現(xiàn)多分支選擇結(jié)構(gòu)4.8選擇結(jié)構(gòu)程序綜合舉例1PPT課件第4章選擇結(jié)構(gòu)程序設(shè)計4.1選擇結(jié)構(gòu)和條件判斷1PPT課14.1選擇結(jié)構(gòu)和條件判斷在現(xiàn)實生活中,需要進行判斷和選擇的情況是很多的如果你在家,我去拜訪你如果考試不及格,要補考如果遇到紅燈,要停車等待周末我們?nèi)ソ加?0歲以上的老年人,入公園免票2PPT課件4.1選擇結(jié)構(gòu)和條件判斷在現(xiàn)實生活中,需要進行判斷和選擇的2精品資料精品資料3你怎么稱呼老師?如果老師最后沒有總結(jié)一節(jié)課的重點的難點,你是否會認為老師的教學方法需要改進?你所經(jīng)歷的課堂,是講座式還是討論式?教師的教鞭“不怕太陽曬,也不怕那風雨狂,只怕先生罵我笨,沒有學問無顏見爹娘……”“太陽當空照,花兒對我笑,小鳥說早早早……”C語言第4章選擇結(jié)構(gòu)程序設(shè)計--ppt課件44.1選擇結(jié)構(gòu)和條件判斷在現(xiàn)實生活中,需要進行判斷和選擇的情況是很多的處理這些問題,關(guān)鍵在于進行條件判斷由于程序處理問題的需要,在大多數(shù)程序中都會包含選擇結(jié)構(gòu),需要在進行下一個操作之前先進行條件判斷5PPT課件4.1選擇結(jié)構(gòu)和條件判斷在現(xiàn)實生活中,需要進行判斷和選擇的54.1選擇結(jié)構(gòu)和條件判斷C語言有兩種選擇語句:(1)if語句,實現(xiàn)兩個分支的選擇結(jié)構(gòu)(2)switch語句,實現(xiàn)多分支的選擇結(jié)構(gòu)6PPT課件4.1選擇結(jié)構(gòu)和條件判斷C語言有兩種選擇語句:6PPT課件64.1選擇結(jié)構(gòu)和條件判斷
例4.1在例3.5的基礎(chǔ)上對程序進行改進。題目要求是求
方程的根。
由鍵盤輸入a,b,c。假設(shè)a,b,c的值任意,并不保證
。需要在程序中進行判別,如果
,就計算并輸出方程的兩個實根,否則就輸出“方程無實根”的信息。
7PPT課件4.1選擇結(jié)構(gòu)和條件判斷例4.1在例3.5的基礎(chǔ)上對7解題思路:輸入a,b,c計算discdisc<0計算x1,x2輸出無實根輸出x1,x2假真8PPT課件解題思路:輸入a,b,c計算discdisc<0計算x1,x8#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,p,q;scanf("%lf%lf%lf",&a,&b,&c);disc=b*b-4*a*c;計算b2-4ac,disc的值變?yōu)?159PPT課件#include<stdio.h>計算b2-4ac,dis9
if(disc<0)
printf(“hasnotrealroots\n”);
else
{p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf(“realroots:\nx1=%7.2f\nx2=%7.2f\n”,x1,x2);}return0;}-15<0為真10PPT課件if(disc<0)-15<0為真10PPT課件10#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,p,q;scanf("%lf%lf%lf",&a,&b,&c);disc=b*b-4*a*c;計算b2-4ac,disc的值變?yōu)?11PPT課件#include<stdio.h>計算b2-4ac,dis11
if(disc<0)printf(“hasnotrealroots\n”);
else
{p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf(“realroots:\nx1=%7.2f\nx2=%7.2f\n”,x1,x2);}return0;}8<0為假p的值變?yōu)?1q的值變?yōu)?.71x1的值變?yōu)?0.29x2的值變?yōu)?1.7112PPT課件if(disc<0)8<0為假p的值變?yōu)?1q的值12
if(disc<0)printf(“hasnotrealroots\n”);
else
{p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf(“realroots:\nx1=%7.2f\nx2=%7.2f\n”,x1,x2);}return0;}選擇結(jié)構(gòu),用if語句實現(xiàn)的13PPT課件if(disc<0)選擇結(jié)構(gòu),用if語句實現(xiàn)的1313
if(disc<0)printf(“hasnotrealroots\n”);
else
{p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf(“realroots:\nx1=%7.2f\nx2=%7.2f\n”,x1,x2);}return0;}復合語句14PPT課件if(disc<0)復合語句14PPT課件144.2用if語句實現(xiàn)選擇結(jié)構(gòu)4.2.1用if語句處理選擇結(jié)構(gòu)舉例4.2.2if語句的一般形式15PPT課件4.2用if語句實現(xiàn)選擇結(jié)構(gòu)4.2.1用if語句處理選擇154.2.1用if語句處理選擇結(jié)構(gòu)舉例
例4.2輸入兩個實數(shù),按代數(shù)值由小到大的順序輸出這兩個數(shù)。16PPT課件4.2.1用if語句處理選擇結(jié)構(gòu)舉例例4.2輸入兩個16解題思路:只需要做一次比較,然后進行一次交換即可用if語句實現(xiàn)條件判斷關(guān)鍵是怎樣實現(xiàn)兩個變量值的互換★●AB互換前●★AB互換后4.2.1用if語句處理選擇結(jié)構(gòu)舉例17PPT課件解題思路:★●AB互換前●★AB互換后4.2.1用if語句17★●ABC★4.2.1用if語句處理選擇結(jié)構(gòu)舉例18PPT課件★●ABC★4.2.1用if語句處理選擇結(jié)構(gòu)舉例18PPT18★●ABC★●4.2.1用if語句處理選擇結(jié)構(gòu)舉例19PPT課件★●ABC★●4.2.1用if語句處理選擇結(jié)構(gòu)舉例19PP19ABC★●★4.2.1用if語句處理選擇結(jié)構(gòu)舉例●20PPT課件ABC★●★4.2.1用if語句處理選擇結(jié)構(gòu)舉例●20PP20#include<stdio.h>intmain(){floata,b,t;scanf("%f,%f",&a,&b);if(a>b){t=a;a=b;b=t;}printf("%5.2f,%5.2f\n",a,b);return0;}將a和b的值互換如果a>b21PPT課件#include<stdio.h>將a和b的值互換如果a>21#include<stdio.h>intmain(){floata,b,t;scanf("%f,%f",&a,&b);if(a>b){t=a;a=b;b=t;}printf("%5.2f,%5.2f\n",a,b);return0;}選擇結(jié)構(gòu),用if語句實現(xiàn)的22PPT課件#include<stdio.h>選擇結(jié)構(gòu),用if語句實現(xiàn)22
例4.3輸入3個數(shù)a,b,c,要求按由小到大的順序輸出。23PPT課件例4.3輸入3個數(shù)a,b,c,要求按由小到大的順序輸出23解題思路:可以先用偽代碼寫出算法:ifa>b,a和b對換
(a是a、b中的小者)ifa>c,a和c對換
(a是三者中最小者)ifb>c,b和c對換
(b是三者中次小者)順序輸出a,b,c24PPT課件解題思路:可以先用偽代碼寫出算法:24PPT課件24#include<stdio.h>intmain(){floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(b>c){t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f\n",a,b,c);return0;}如果a>b,將a和b對換a是a、b中的小者25PPT課件#include<stdio.h>如果a>b,將a和b對25#include<stdio.h>intmain(){floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(b>c){t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f\n",a,b,c);return0;}如果a>c,將a和c對換a是三者中的小者26PPT課件#include<stdio.h>如果a>c,將a和c對26#include<stdio.h>intmain(){floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(b>c){t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f\n",a,b,c);return0;}如果b>c,將b和c對換b是三者中的次小者27PPT課件#include<stdio.h>如果b>c,將b和c對274.2.2if語句的一般形式if(表達式)語句1[else語句2]關(guān)系表達式邏輯表達式數(shù)值表達式方括號內(nèi)的部分為可選的28PPT課件4.2.2if語句的一般形式if(表達式)284.2.2if語句的一般形式if(表達式)語句1[else語句2]簡單的語句復合語句另一個if語句等29PPT課件4.2.2if語句的一般形式if(表達式)29最常用的3種if語句形式:1.if(表達式)語句1(沒有else子句)2.if(表達式)語句1else語句2(有else子句)3.if(表達式1)
語句1elseif(表達式2)語句2elseif(表達式3)語句3
┆elseif(表達式m)語句melse語句m+1(在else部分又嵌套了多層的if語句)30PPT課件最常用的3種if語句形式:30PPT課件30if(number>500)cost=0.15;elseif(number>300)cost=0.10;elseif(number>100)cost=0.075;elseif(number>50)cost=0.05;elsecost=0;if(number>500)cost=0.15;elseif(number>300)cost=0.10;elseif(number>100)cost=0.075;elseif(number>50)cost=0.05;elsecost=0;等價于分號不能丟31PPT課件if(number>500)cost=0.15;31說明:(1)整個if語句可寫在多行上,也可寫在一行上但都是一個整體,屬于同一個語句(2)“語句1”…“語句m”是if中的內(nèi)嵌語句
內(nèi)嵌語句也可以是一個if語句(3)“語句1”…“語句m”可以是簡單的語句,也可以是復合語句32PPT課件說明:32PPT課件324.3關(guān)系運算符和關(guān)系表達式4.3.1關(guān)系運算符及其優(yōu)先次序4.3.2關(guān)系表達式33PPT課件4.3關(guān)系運算符和關(guān)系表達式4.3.1關(guān)系運算符及其優(yōu)先次序334.3.1關(guān)系運算符及其優(yōu)先次序關(guān)系運算符:用來對兩個數(shù)值進行比較的比較運算符C語言提供6種關(guān)系運算符:①<(小于)②<=(小于或等于)③>(大于)④>=(大于或等于)
⑤==(等于)⑥!=(不等于)優(yōu)先級相同(高)優(yōu)先級相同(低)34PPT課件4.3.1關(guān)系運算符及其優(yōu)先次序關(guān)系運算符:優(yōu)先級相同(高344.3.1關(guān)系運算符及其優(yōu)先次序關(guān)系、算術(shù)、賦值運算符的優(yōu)先級算術(shù)運算符(高)賦值運算符(低)關(guān)系運算符35PPT課件4.3.1關(guān)系運算符及其優(yōu)先次序關(guān)系、算術(shù)、賦值運算符的優(yōu)先354.3.1關(guān)系運算符及其優(yōu)先次序c>a+b等效于c>(a+b)a>b==c等效于(a>b)==ca==b<c等效于a==(b<c)a=b>c等效于a=(b>c)36PPT課件4.3.1關(guān)系運算符及其優(yōu)先次序c>a+b等364.3.2關(guān)系表達式關(guān)系表達式用關(guān)系運算符將兩個數(shù)值或數(shù)值表達式連接起來的式子關(guān)系表達式的值是一個邏輯值,即“真”或“假”在C的邏輯運算中,以“1”代表“真”,以“0”代表“假”37PPT課件4.3.2關(guān)系表達式關(guān)系表達式37PPT課件374.4邏輯運算符和邏輯表達式4.4.1邏輯運算符及其優(yōu)先次序4.4.2邏輯表達式4.4.3邏輯型變量38PPT課件4.4邏輯運算符和邏輯表達式4.4.1邏輯運算符及其優(yōu)先384.4.1邏輯運算符及其優(yōu)先次序3種邏輯運算符:&&(邏輯與)||(邏輯或)!(邏輯非)&&和||是雙目(元)運算符!是一目(元)運算符邏輯表達式用邏輯運算符將關(guān)系表達式或其他邏輯量連接起來的式子39PPT課件4.4.1邏輯運算符及其優(yōu)先次序3種邏輯運算符:39PPT394.4.1邏輯運算符及其優(yōu)先次序判斷年齡在13至17歲之內(nèi)?age>=13&&age<=17判斷年齡小于12或大于65?age<12||age>6540PPT課件4.4.1邏輯運算符及其優(yōu)先次序判斷年齡在13至17歲之內(nèi)404.4.1邏輯運算符及其優(yōu)先次序ab!a!ba&&ba||b真真假假真真真假假真假真假真真假假真假假真真假假邏輯運算的真值表41PPT課件4.4.1邏輯運算符及其優(yōu)先次序ab!a!ba&&414.4.1邏輯運算符及其優(yōu)先次序邏輯運算符的優(yōu)先次序!→&&→||(!為三者中最高)與其他運算符的優(yōu)先次序!(高)算術(shù)運算符關(guān)系運算符&&和||賦值運算符(低)42PPT課件4.4.1邏輯運算符及其優(yōu)先次序邏輯運算符的優(yōu)先次序424.4.2邏輯表達式邏輯表達式的值應該是邏輯量“真”或“假”編譯系統(tǒng)在表示邏輯運算結(jié)果時以數(shù)值1代表“真”,以0代表“假”但在判斷一個量是否為“真”時以0代表“假”,以非0代表“真”注意:將一個非零的數(shù)值認作為“真”43PPT課件4.4.2邏輯表達式邏輯表達式的值應該是邏輯量“真”或“假434.4.2邏輯表達式(1)若a=4,則!a的值為0(2)若a=4,b=5,則a&&b的值為1(3)a和b值分別為4和5,則a||b的值為1(4)a和b值分別為4和5,則!a||b的值為1(5)4&&0||2的值為144PPT課件4.4.2邏輯表達式(1)若a=4,則!a的值為044P444.4.2邏輯表達式修改后的邏輯運算真值表ab!a!ba&&ba||b非0非00011非000101假非01001假0110045PPT課件4.4.2邏輯表達式修改后的邏輯運算真值表ab!a!b454.4.2邏輯表達式判別某一年是否閏年,用邏輯表達式表示閏年的條件是符合下面二者之一:①能被4整除,但不能被100整除,如2008②能被400整除,如2000(year%4==0&&year100!=0)||year%400==0如果表達式值為1,則閏年;否則為非閏年46PPT課件4.4.2邏輯表達式判別某一年是否閏年,用邏輯表達式表示4464.4.3邏輯型變量這是C99所增加的一種數(shù)據(jù)類型可以將關(guān)系運算和邏輯運算的結(jié)果存到一個邏輯型變量中,以便于分析和運算47PPT課件4.4.3邏輯型變量這是C99所增加的一種數(shù)據(jù)類型47PP474.5條件運算符和條件表達式有一種if語句,當被判別的表達式的值為“真”或“假”時,都執(zhí)行一個賦值語句且向同一個變量賦值如:if(a>b)max=a;elsemax=b;max=(a>b)?a
:b;條件運算符48PPT課件4.5條件運算符和條件表達式有一種if語句,當被判別的表達484.5條件運算符和條件表達式有一種if語句,當被判別的表達式的值為“真”或“假”時,都執(zhí)行一個賦值語句且向同一個變量賦值如:if(a>b)max=a;elsemax=b;max=(a>b)?a
:b;條件表達式49PPT課件4.5條件運算符和條件表達式有一種if語句,當被判別的表達494.5條件運算符和條件表達式條件表達式的一般形式為表達式1?表達式2:
表達式350PPT課件4.5條件運算符和條件表達式條件表達式的一般形式為50PP504.5條件運算符和條件表達式條件運算符的執(zhí)行順序:求解表達式1若為非0(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值51PPT課件4.5條件運算符和條件表達式條件運算符的執(zhí)行順序:51PP514.5條件運算符和條件表達式條件運算符優(yōu)先于賦值運算符條件運算符的結(jié)合方向為“自右至左”以下為合法的使用方法:a>b?(max=a):(max=b);a>b?printf(“%d”,a):printf(“%d”,b);52PPT課件4.5條件運算符和條件表達式條件運算符優(yōu)先于賦值運算符52524.5條件運算符和條件表達式
例4.4輸入一個字符,判別它是否大寫字母,如果是,將它轉(zhuǎn)換成小寫字母;如果不是,不轉(zhuǎn)換。然后輸出最后得到的字符。53PPT課件4.5條件運算符和條件表達式例4.4輸入一個字符,判534.5條件運算符和條件表達式解題思路:用條件表達式來處理,當字母是大寫時,轉(zhuǎn)換成小寫字母,否則不轉(zhuǎn)換54PPT課件4.5條件運算符和條件表達式解題思路:用條件表達式來處理,544.5條件運算符和條件表達式#include<stdio.h>intmain(){charch;scanf("%c",&ch);ch=(ch>='A'&&ch<='Z‘)?(ch+32):ch;printf("%c\n",ch);return0;}55PPT課件4.5條件運算符和條件表達式#include<stdio554.6選擇結(jié)構(gòu)的嵌套在if語句中又包含一個或多個if語句稱為if語句的嵌套一般形式:if()if()語句1else語句2elseif()語句3else語句4內(nèi)嵌ifelse總是與它上面最近的未配對的if配對56PPT課件4.6選擇結(jié)構(gòu)的嵌套在if語句中又包含一個或多個if語句稱564.6選擇結(jié)構(gòu)的嵌套在if語句中又包含一個或多個if語句稱為if語句的嵌套if(){
if()語句1}
else語句2內(nèi)嵌if{}限定了內(nèi)嵌if范圍57PPT課件4.6選擇結(jié)構(gòu)的嵌套在if語句中又包含一個或多個if語句稱574.6選擇結(jié)構(gòu)的嵌套
例4.5有一函數(shù):
編一程序,輸入一個x值,要求輸出相應的y值。58PPT課件4.6選擇結(jié)構(gòu)的嵌套例4.5有一函數(shù):58PPT課件584.6選擇結(jié)構(gòu)的嵌套解題思路:用if語句檢查x的值,根據(jù)x的值決定賦予y的值由于y的可能值不是兩個而是三個,因此不可能只用一個簡單的(無內(nèi)嵌if)的if語句來實現(xiàn)59PPT課件4.6選擇結(jié)構(gòu)的嵌套解題思路:59PPT課件594.6選擇結(jié)構(gòu)的嵌套解題思路:方法1(1)先后用3個獨立的if語句處理:輸入x若x<0,則y=-1若x=0,則y=0若x>0,則y=1輸出x和yscanf("%d",&x);if(x<0)y=-1;if(x==0)y=0;if(x>0)y=1;printf("x=%d,y=%d\n",x,y);60PPT課件4.6選擇結(jié)構(gòu)的嵌套解題思路:方法1scanf("%d",604.6選擇結(jié)構(gòu)的嵌套解題思路:方法2(2)用一個嵌套的if語句處理:輸入x若x<0,則y=-1否則
若x=0,則y=0
否則y=1輸出x和yscanf("%d",&x);if(x<0)y=-1;elseif(x==0)y=0;elsey=1;printf("x=%d,y=%d\n",x,y);61PPT課件4.6選擇結(jié)構(gòu)的嵌套解題思路:方法2scanf("%d",614.6選擇結(jié)構(gòu)的嵌套解題思路:方法2(2)用一個嵌套的if語句處理:輸入x若x<0,則y=-1否則
若x=0,則y=0
否則y=1輸出x和yscanf("%d",&x);if(x<0)y=-1;elseif(x==0)y=0;elsey=1;printf("x=%d,y=%d\n",x,y);scanf("%d",&x);if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;printf("x=%d,y=%d\n",x,y);提倡內(nèi)嵌if放在else中62PPT課件4.6選擇結(jié)構(gòu)的嵌套解題思路:方法2scanf("%d",624.7用switch語句實現(xiàn)多分支選擇結(jié)構(gòu)switch語句用來實現(xiàn)多分支選擇結(jié)構(gòu)學生成績分類85分以上為’A’等70~84分為’B’等60~69分為’C’等……人口統(tǒng)計分類
按年齡分為老、中、青、少、兒童63PPT課件4.7用switch語句實現(xiàn)多分支選擇結(jié)構(gòu)switch語句634.7用switch語句實現(xiàn)多分支選擇結(jié)構(gòu)
例4.6要求按照考試成績的等級輸出百分制分數(shù)段,A等為85分以上,B等為70~84分,C等為60~69分,D等為60分以下。成績的等級由鍵盤輸入。64PPT課件4.7用switch語句實現(xiàn)多分支選擇結(jié)構(gòu)例4.6644.7用switch語句實現(xiàn)多分支選擇結(jié)構(gòu)解題思路:判斷出這是一個多分支選擇問題根據(jù)百分制分數(shù)將學生成績分為4個等級如果用if語句,至少要用3層嵌套的if,進行3次檢查判斷用switch語句進行一次檢查即可得到結(jié)果65PPT課件4.7用switch語句實現(xiàn)多分支選擇結(jié)構(gòu)解題思路:65P65#include<stdio.h>intmain(){chargrade;scanf("%c",&grade);printf("Yourscore:");switch(grade){case'A':printf("85~100\n");break;case'B':printf("70~84\n");break;case'C':printf("60~69\n");break;case'D':printf("<60\n");break; default:printf("enterdataerror!\n");}return0;}值為A66PPT課件#include<stdio.h>值為A66PPT課件66#include<stdio.h>intmain(){chargrade;scanf("%c",&grade);printf("Yourscore:");switch(grade){case'A':printf("85~100\n");break;case'B':printf("70~84\n");break;case'C':printf("60~69\n");break;case'D':printf("<60\n");break; default:printf("enterdataerror!\n");}return0;}不能少67PPT課件#include<stdio.h>不能少67PPT課件67#include<stdio.h>intmain(){chargrade;scanf("%c",&grade);printf("Yourscore:");switch(grade){case'A':printf("85~100\n");break;case'B':printf("70~84\n");break;case'C':printf("60~69\n");break;case'D':printf("<60\n");break; default:printf("enterdataerror!\n");}return0;}值為C68PPT課件#include<stdio.h>值為C68PPT課件68#include<stdio.h>intmain(){chargrade;scanf("%c",&grade);printf("Yourscore:");switch(grade){case'A':printf("85~100\n");break;case'B':printf("70~84\n");break;case'C':printf("60~69\n");break;case'D':printf("<60\n");break; default:printf("enterdataerror!\n");}return0;}值為F69PPT課件#include<stdio.h>值為F69PPT課件69#include<stdio.h>intmain(){chargrade;scanf("%c",&grade);printf("Yourscore:");switch(grade){case'A':printf("85~100\n");break;case'B':printf("70~84\n");break;case'C':printf("60~69\n");break;case'D':printf("<60\n");break; default:printf("enterdataerror!\n");}return0;}此行位置有問題,應如何修改?70PPT課件#include<stdio.h>此行位置有問題,應如何修70switch語句的作用是根據(jù)表達式的值,使流程跳轉(zhuǎn)到不同的語句switch語句的一般形式:switch(表達式){case常量1:語句1case常量2:語句2
┇
┇
┇case常量n:語句ndefault:語句n+1}整數(shù)類型(包括字符型)71PPT課件switch語句的作用是根據(jù)表達式的值,使流程跳轉(zhuǎn)到不同的語71switch語句的作用是根據(jù)表達式的值,使流程跳轉(zhuǎn)到不同的語句switch語句的一般形式:switch(表達式){case常量1:語句1case常量2:語句2
┇
┇
┇case常量n:語句ndefault:語句n+1}不能相同72PPT課件switch語句的作用是根據(jù)表達式的值,使流程跳轉(zhuǎn)到不同的語72scanf("%c",&grade);printf("Yourscore:");switch(grade){case'A':printf("85~100\n");break;case'B':printf("70~84\n");break;case'C':printf("60~69\n");break;case'D':printf("<60\n");break; default:printf("enterdataerror!\n");}73PPT課件73PPT課件73scanf("%c",&grade);printf("Yourscore:");switch(grade){case'A':printf("85~100\n");break;case'B':printf("70~84\n");break;case'C':printf("60~69\n");break;case'D':printf("<60\n");break; default:printf("enterdataerror!\n");}74PPT課件74PPT課件74scanf("%c",&grade);printf("Yourscore:");switch(grade){case'A‘:case'B‘:case'C':printf("60~69\n");break;case'D':printf("<60\n");break; default:printf("enterdataerror!\n");}75PPT課件75PPT課件75
例4.7編寫程序,用switch語句處理菜單命令。解題思路:在許多應用程序中,用菜單對流程進行控制,例如從鍵盤輸入一個’A’或’a’字符,就會執(zhí)行A操作,輸入一個’B’或’b’字符,就會執(zhí)行B操作,等等。76PPT課件例4.7編寫程序,用switch語句處理菜單命令。776#include<stdio.h>intmain(){voidaction1(int,int),action2(int,int);charch;inta=15,b=23;ch=getchar();switch(ch){case'a':case‘A’:action1(a,b);break;
case'b':case‘B’:action2(a,b);break;
default:putchar(‘\a’);}return0;}輸入a或A調(diào)用action1函數(shù),執(zhí)行A操作voidaction1(intx,inty){printf("x+y=%d\n",x+y);}77PPT課件#include<stdio.h>輸入a或A調(diào)用actio77#include<stdio.h>intmain(){voidaction1(int,int),action2(int,int);charch;inta=15,b=23;ch=getchar();switch(ch){case'a':case‘A’:action1(a,b);break;
case'b':case‘B’:action2(a,b);break;
default:putchar(‘\a’);}return0;}輸入b或B調(diào)用action2函數(shù),執(zhí)行B操作voidaction2(intx,inty){printf("x*y=%d\n",x*y);}78PPT課件#include<stdio.h>輸入b或B調(diào)用actio78#include<stdio.h>intmain(){voidaction1(int,int),action2(int,int);charch;inta=15,b=23;ch=getchar();switch(ch){case'a':case‘A’:action1(a,b);break;
case'b':case‘B’:action2(a,b);break;
default:putchar(‘\a’);}return0;}輸入其他字符發(fā)出警告79PPT課件#include<stdio.h>輸入其他字符發(fā)出警告7979這是一個非常簡單的示意程序?qū)嶋H應用中,所指定的操作可能比較復雜:A:輸入全班學生各門課的成績B:計算并輸出每個學生各門課的平均成績C:計算并輸出各門課的全班平均成績D:對全班學生的平均成績由高到低排序并輸出可以按以上思路編寫程序,把各action函數(shù)設(shè)計成不同的功能以實現(xiàn)各要求80PPT課件這是一個非常簡單的示意程序80PPT課件804.8選擇結(jié)構(gòu)程序綜合舉例例4.8寫一程序,判斷某一年是否閏年。解題思路:在前面已介紹過判別閏年的方法本例用不同的方法編寫程序81PPT課件4.8選擇結(jié)構(gòu)程序綜合舉例例4.8寫一程序,判斷某一年是否814.8選擇結(jié)構(gòu)程序綜合舉例用變量leap代表是否閏年的信息。若閏年,令leap=1;非閏年,leap=0。最后判斷l(xiāng)eap是否為1(真),若是,則輸出“閏年”信息參見教材圖4.1382PPT課件4.8選擇結(jié)構(gòu)程序綜合舉例用變量leap代表是否閏年的信息。82#include<stdio.h>intmain() {intyear,leap;printf("enteryear:");scanf("%d",&year);if(year%4==0)if(year%100==0) if(year%400==0)leap=1;elseleap=0; elseleap=1;elseleap=0;if(leap)printf("%dis",year);elseprintf("%disnot",year);printf("aleapyear.\n");return0;}標志變量與if(leap!=0)含義相同83PPT課件#include<stdio.h>標志變量與if(lea83#include<stdio.h>intmain() {intyear,leap;printf("enteryear:");scanf("%d",&year);if(year%4==0)if(year%100==0) if(year%400==0)leap=1;elseleap=0; elseleap=1;elseleap=0;if(leap)printf("%dis",year);elseprintf("%disnot",year);printf("aleapyear.\n");return0;}采取鋸齒形式84PPT課件#include<stdio.h>采取鋸齒形式84PPT課84#include<stdio.h>intmain() {intyear,leap;printf("enteryear:");scanf("%d",&year);if(year%4==0)if(year%100==0) if(year%400==0)leap=1;elseleap=0; elseleap=1;elseleap=0;if(leap)printf("%dis",year);elseprintf("%disnot",year);printf("aleapyear.\n");return0;}if(year%4!=0)leap=0;elseif(year%100!=0)leap=1;elseif(year%400!=0)leap=0;else
leap=1;85PPT課件#include<stdio.h>if(year%4!=085#include<stdio.h>intmain() {intyear,leap;printf("enteryear:");scanf("%d",&year);if(year%4==0)if(year%100==0) if(year%400==0)leap=1;elseleap=0; elseleap=1;elseleap=0;if(leap)printf("%dis",year);elseprintf("%disnot",year);printf("aleapyear.\n");return0;}if((year%4==0&&year%100!=0)||(year%400==0))leap=1;elseleap=0;86PPT課件#include<stdio.h>if((year%4==86
例4.9求
方程的解。解題思路:處理以下各情況①
a=0,不是二次方程②
,有兩個相等實根
③
,有兩個不等實根。
④
,有兩個共軛復根。
應當以p+qi和p-qi的形式輸出復根
其中,p=-b/2a,q=()/2a參見教材圖4.1487PPT課件例4.9求87#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,realpart,imagpart;scanf("%lf,%lf,%lf",&a,&b,&c);printf("Theequation");if(fabs(a)<=1e-6)printf("isnotaquadratic\n");實型不能用if(a==0)88PPT課件#include<stdio.h>實型不能用if(a==88else{disc=b*b-4*a*c;if(fabs(disc)<=1e-6)printf("hastwoequalroots:%8.4f\n",-b/(2*a));else先算disc,以減少重復計算不能用if(disc==0)89PPT課件else先算disc,以減少重復計算不能用if(di89if(disc>1e-6) {x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf("hasdistinctrealroots:%8.4fand%8.4f\n",x1,x2); }else90PPT課件if(disc>1e-6)90PPT課件90{realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf("hascomplexroots:\n");printf("%8.4f+%8.4fi\n“,realpart,imagpart);printf("%8.4f-%8.4fi\n",realpart,imagpart); }}return0;}91PPT課件{realpart=-b/(2*a);91{realpart=-b/(2*a);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 46911-2025養(yǎng)老機構(gòu)老年人保護性約束服務規(guī)范
- GB/T 46876-2025煙氣二氧化碳捕集與壓縮裝置運行管理規(guī)范
- 超聲科預約制度
- 請大家認真查閱報銷制度
- 養(yǎng)老機構(gòu)后勤管理制度
- 2025 小學四年級科學下冊土壤有機質(zhì)來源與作用講解課件
- 零配件技術(shù)型銷售
- 2026年聊城東阿縣初級綜合類事業(yè)單位公開招聘人員(37人)備考考試試題附答案解析
- 2026廣西防城港市東興市商務和口岸管理局、東興海關(guān)招聘1人(第二批)參考考試題庫附答案解析
- 2026浙江臺州玉環(huán)農(nóng)商銀行招聘17人參考考試題庫附答案解析
- 暫緩行政拘留申請書
- 小學班主任經(jīng)驗交流課件
- 變配電室工程施工質(zhì)量控制流程及控制要點
- 國有企業(yè)合規(guī)管理
- 膀胱全切回腸代膀胱護理
- 公司個人征信合同申請表
- 示波器說明書
- 談心談話記錄100條范文(6篇)
- 微電影投資合作協(xié)議書
- 排水管道溝槽土方開挖專項方案
- GB/T 5277-1985緊固件螺栓和螺釘通孔
評論
0/150
提交評論