版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C語言程序設(shè)計C語言程序設(shè)計、結(jié)構(gòu)化程序設(shè)計的有哪幾種基本結(jié)構(gòu)?、算法的描述方法都有哪幾種?、C語句的分類有哪些?課程回顧、結(jié)構(gòu)化程序設(shè)計的有哪幾種基本結(jié)構(gòu)?課程回顧4. 選擇結(jié)構(gòu)程序設(shè)計4.1有節(jié)約要求的水費問題4.2 if語句4.3switch語句4. 選擇結(jié)構(gòu)程序設(shè)計4.1有節(jié)約要求的水費問題學(xué)習(xí)目標熟練掌握if語句的各種用法掌握switch語句的用法4. 選擇結(jié)構(gòu)程序設(shè)計能夠編寫簡單的選擇結(jié)構(gòu)程序?qū)W習(xí)目標熟練掌握if語句的各種用法掌握switch語句的用法選擇結(jié)構(gòu)單分支雙分支if (表達式) 語句多分支if (表達式) 語句else 語句if (表達式1) 語句else if (表達式
2、) 語句else 語句nif 語句的嵌套switch語句4. 選擇結(jié)構(gòu)程序設(shè)計選擇結(jié)構(gòu)單分支雙分支if (表達式) 語句多分支if 4.1 有節(jié)約要求的水費問題任務(wù)描述 為提倡節(jié)約用水,按照每月每戶每人3噸水進行定量,標準以內(nèi)的用水量水費為每噸1.51元,超額的部分2倍付費。需要我們編寫程序來解決每戶每個月要交的水費問題。 問題分析:1、每戶的人口數(shù)2、每個月所用的水量3、判斷是否超出了定量標準4、進行水費的計算。 4.1 有節(jié)約要求的水費問題任務(wù)描述數(shù)據(jù)需求 1、程序常量 DOSAGE 3 CRITERION 1.51 2、輸入數(shù)據(jù) int person /*存放人口數(shù)*/ float pr
3、evious,behind /*存放上個月水表 讀數(shù),這個月水表讀數(shù)*/ 3、輸出數(shù)據(jù) int ration /*每戶標準用水量*/ float water,charge /*用水總量,總水費*/ 4.1 有節(jié)約要求的水費問題數(shù)據(jù)需求4.1 有節(jié)約要求的水費問題算法1獲取數(shù)據(jù):讀入水表上個月和這個月的讀數(shù),讀入人口數(shù)。2計算用水量:water=behind-previous。3計算用水標準量:ration=person*DOSAGE4if沒有超出標準用水量 charge=water*CRITERION else charge=ration*CRITERION+(water-ration)*2*
4、CRITERION5顯示水費總數(shù)。實踐4.1 有節(jié)約要求的水費問題算法實踐4.1 有節(jié)約要求的水費問題流程圖 4.1 有節(jié)約要求的水費問題流程圖4.1 有節(jié)約要求的水費問題功能實現(xiàn)#include #define DOSAGE 3#define CRITERION 1.51main() int person,ration; float previous,behind,water,charge; printf(請輸入人口數(shù)、上月水表讀數(shù)、本月水表讀數(shù):); scanf(%d %f %f,&person,&previous,&behind); ration=person*DOSAGE; water
5、=behind-previous; if(water=ration) /* 條件判斷,分支選擇 */ charge=water*CRITERION; else charge=ration*CRITERION+(water-ration)*2*CRITERION; printf(n用戶水費是:%.2fn,charge); 4.1 有節(jié)約要求的水費問題功能實現(xiàn)4.1 有節(jié)約要求的水費問題單分支if語句 該語句的一般形式如下: if(表達式) 語句 ;功能:如果表達式的值為真,則執(zhí)行其后面的語句,否則不執(zhí)行該語句。 4.2.1 if語句單分支if語句 該語句的一般形式如下: 4.2.112#incl
6、ude int main() float score; scanf(%f,&score); if (score=60) printf(通過考試!); return 0;89通過考試!思考? 從鍵盤輸入一個月考成績,如果輸入成績大于等于60,在屏幕上輸出通過考試!4.2.1 if語句12#include 89思考?4.2思考?在鍵盤上輸入兩個數(shù),輸出其中較大的那個數(shù)?#include int main() float a,b,max; scanf(%f,%f,&a,&b); max=a; if (bmax) max=b; printf(max is %fn,max); return 0;思考?#
7、include 雙分支if語句這是if語句比較完整的形式,包含一條if子句和一條else子句。該語句的一般形式如下:if(表達式) 語句1; else 語句2 ;功能:如果表達式的值為真,則執(zhí)行語句1,否則執(zhí)行語句2。 4.2.1 if語句雙分支if語句這是if語句比較完整的形式,包含一條if子#include int main() float score; scanf(%f,&score); if (score=60) printf(通過考試!); else printf(沒有通過考試!); return 0; 思考? 從鍵盤輸入一個月考成績,如果輸入成績大于等于60,在屏幕上輸出通過考試!
8、否則輸出沒有通過考試!#include 思考?void main() float a,b,t; scanf(%f,%f,&a,&b); if(ab) t=a;a=b;b=t; printf(%5.2f,%5.2f,a,b);思考?利用分雙支結(jié)構(gòu),在鍵盤上輸入兩個數(shù),按數(shù)據(jù)大小順序輸出?void main()思考?思考?輸入3個數(shù)a,b,c,要求按由小到大的順序輸出?#include void main() float a,b,c,t; scanf(%f,%f,%f,&a,&b,&c); if(ab) t=a;a=b;a=t; /*實現(xiàn)a和b的互換*/ if(ac) t=a;a=c;c=t; /
9、*實現(xiàn)a和c的互換*/ if(bc) t=b;b=c;c=t; /*實現(xiàn)b和c的互換*/ printf(%5.2f,%5.2f,%5.2f,a,b,c);思考?#include #include int main() float a,b,c,area,s; scanf(“%f,%f,%f”,&a,&b,&c); if (a+bc )& (a+cb )&( b+ca) s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“area=%7.2fn”,area); else printf(“Not a triangle!n”);reutrn 0;【例
10、】輸入三角形的三邊,求三角形的面積。輸入a,b,c是三角形嗎?s (a+b+c)/2areasqrt(s*(s-a)*(s-b)*(s-c)輸出area輸出“非三角形!”3,4,5area= 6.003,4,8Not a triangle!4.2.1 if語句#include 【例】輸入三角形的三邊多分支if語句該語句的一般形式如下:if(表達式1)語句1else if(表達式2) 語句2 .else if(表達式n) 語句nelse 語句n+1 功能:依次判斷表達式的值,當出現(xiàn)某個表達式的值為真時,則執(zhí)行其對應(yīng)的語句,然后跳轉(zhuǎn)到整個if語句之后繼續(xù)執(zhí)行程序;如果所有的表達式均為假,則執(zhí)行el
11、se后的語句n+1。 4.2.1 if語句多分支if語句該語句的一般形式如下:4.2.1 if多分支if語句4.2.1 if語句多分支if語句4.2.1 if語句#include void main( ) float number,cost,result; printf(“請輸入消費:); scanf(%f,&number); 4.2.1 if語句商場打折:花費超過500元打85折,花費超過300元打9折,花費超過100元,打99.25折,花費超過50元打95,請輸入商場消費,輸出實際消費。if(number500) c7st=0.15;else if(number300) cost=0.10
12、; else if(number100) cost=0.075; else if(number50) cost=0.05; else cost=0; result=number-number*cost; printf(“實際消費:%fn”,result);#include 4.2.1 if語句#include int main( ) float score; char grade; printf(Please input the score:); scanf(%f,&score); if (score=90&score=80&score=70&score=60&score=0&score60)
13、 grade=E;else printf(your score is wrong .n); grade=0; printf(score is %.2f, grade is %cn“,score,grade);return 0; #include 4.2.1 if語句int main()int n,m;printf(“please input n:n”);scanf(“%d”,&n);if(n%3=0 & n%7=0)m=2;else if(n%3=0 | n%7=0)m=1;elsem=0;printf(“the result is %d”,m);return 0; 4.2.1 if語句 輸入
14、一個整數(shù),若該數(shù)能夠被3和7整除,則輸出2;若只能被3和7中的一個整除,則輸出1;若不能被3和7中的任意一個整除,則輸出0;int main()4.2.1 if語句 輸入一個整數(shù),嵌套的if語句 當if語句的操作語句中包含其他if語句時,稱為嵌套的if語句。該語句的基本形式如下: 4.2.2 if語句嵌套注意if與else的配對原則:else總是與它上面的最近的未配對的if配對。嵌套的if語句 當if語句的操作語句中包含其他if語句時舉例已知a=3 b=4 c=5 d=0, d=?if (ab)d=a;else if (cb) d=c; else d=b;if (ab)if (cb) d=c;
15、else d=b ;if (ab)if (cb) d=c;else d=b ;if (ab) if (cb) d=c; else d=b;else d=a;d=5d=3d=0d=44.2.2 if語句嵌套舉例已知a=3 b=4 c=5 d=0, d=int main()int a,b,c,max;scanf(%d,%d,%d,&a,&b,&c);if (ab) if (ac) max=a; else max=c;else if(bc) max=b; else max=c;printf(max=%dn,max);return 0; 編寫C程序,實現(xiàn)從鍵盤任意接收3個整數(shù),輸出最大數(shù)?4.2.2
16、if語句嵌套int main() 編寫C程序,實現(xiàn)從鍵盤任意接收3實例分析 編寫程序,輸入一個x的值,按以下函數(shù)計算并輸出y的值。 -1 (x0) 4.2.2 if語句嵌套實例分析 編寫程序,輸入一個x的值,按以下函數(shù)計算實例分析4.2.2 if語句嵌套實例分析4.2.2 if語句嵌套實例分析#include void main() int x,y; scanf(%d,&x); if(x0) y=-1; else if(x=0) y=0; else y=1; printf(x=%d,y=%dn,x,y); 4.2.2 if語句嵌套實例分析#include 4.2.2 實例分析 編寫程序,輸入一
17、個x的值,按以下函數(shù)計算并輸出y的值。 x (x1)y = 2x-1 (1=x=10) 4.2.2 if語句嵌套實例分析 編寫程序,輸入一個x的值,按以下函數(shù)計算實例分析#include int main()int x,y;printf(“please input the x:n”);scanf(“%d”,&x);if(x=1 & x=10)y=3*x-1;printf(“y is %d”,y);return 0;4.2.2 if語句嵌套實例分析#include 4.2.2 32課堂小結(jié) 1. 單分支(if結(jié)構(gòu)) 2. 雙分支結(jié)構(gòu)(ifelse )結(jié)構(gòu)格式 3. ? : 條件表達式 4.if與
18、else的配對原則: else總是與它上面的最近的未配對的if配對。 32課堂小結(jié) 1. 單分支(if結(jié)構(gòu))選擇結(jié)構(gòu)單分支雙分支if (表達式) 語句多分支if (表達式) 語句else 語句if (表達式1) 語句else if (表達式) 語句else 語句nif 語句的嵌套switch語句課堂小結(jié)選擇結(jié)構(gòu)單分支雙分支if (表達式) 語句多分支if 課程回顧1、if與else的配對原則?2、寫出程序運行結(jié)果。#include intmain()int a=100,x=10,y=20,ok1=5,ok2=0;if(xy) if(y!=10) if(!ok1) a=1; else if(ok
19、2) a=10;a=-1;printf(“%dn”,a);return 0;課程回顧1、if與else的配對原則?4. 選擇結(jié)構(gòu)程序設(shè)計4.1有節(jié)約要求的水費問題4.2 if語句4.3 switch語句4. 選擇結(jié)構(gòu)程序設(shè)計4.1有節(jié)約要求的水費問題4.3 switch語句if語句只有兩個分支可供選擇,而實際問題中常常需要用到多分支的選擇。所以C語言提供了一種switch語句專門處理多分支的情形,使程序變得簡潔易懂。switch語句的一般形式如下:switch(表達式) case 常量表達式1: 語句塊1 case 常量表達式2: 語句塊2 case 常量表達式n: 語句塊n default:
20、 語句塊n + 1 功能:首先計算switch后面括號內(nèi)的“表達式”,然后依次與各個case后面的“常量表達式”的值進行比較,當“表達式”的值與某一個case后面的“常量表達式”的值相等時,就選擇這個標號作為入口,執(zhí)行該case子句后面的語句塊,并繼續(xù)執(zhí)行其后的所有case子句直到程序結(jié)束。如果“表達式”的值與所有case后面的“常量表達式”的值都不相等,則執(zhí)行default后面的語句。 4.3 switch語句if語句只有兩個分支可供選擇int main () int a; scanf(%d,&a); switch(a) case 1: printf(Mondayn);break; case
21、 2: printf(Tuesdayn);break; case 3: printf(Wednesdayn);break; case 4: printf(Thursdayn);break; case 5: printf(firdayn);break; case 6: printf(Saturadayn);break; case 7: printf(Sundayn);break; default: printf(errorn); return 0;輸入17的整數(shù),要求輸出對應(yīng)的星期的英文單詞。4.3 switch語句int main ()輸入17的整數(shù),要求輸出對應(yīng)的星期的在使用switch結(jié)構(gòu)
22、時應(yīng)注意以下幾點:switch 語句中的“表達式”和case后面的“常量表達式”的結(jié)果值的類型應(yīng)該一致。每一個case的常量表達式的值必須互不相同,否則出現(xiàn)矛盾現(xiàn)象。各個case的出現(xiàn)次序不影響執(zhí)行結(jié)果。執(zhí)行完一個case后面的語句后,流程控制轉(zhuǎn)移下一個case繼續(xù)執(zhí)行,除非有break語句跳出switch。default 語句可有可無。另外,default 后面可以不加break語句。4.3 switch語句在使用switch結(jié)構(gòu)時應(yīng)注意以下幾點:switch 語句中實例分析輸入一個百分制成績,要求輸出對應(yīng)的成績等級。#include int main( ) float score; int
23、 temp; char grade; printf(Please input :); scanf(%f,&score); temp=(int)score/10;switch(temp)case 10: case 9: grade=A; break;case 8: grade=B; break;case 7: grade=C; break;case 6: grade=D; break;default: grade=E;printf(score is %.2f, grade is %cn“ ,score, grade);return 0;4.3 switch語句實例分析輸入一個百分制成績,要求輸出
24、對應(yīng)的成績等級。#inc#include int main()int year, month, day;int leap;printf(please input the year number:);scanf(%d, &year);printf(please input the month number:);scanf(%d, &month);if(year%400 = 0)|(year%4 = 0 & year%100 != 0) leap = 1;else leap = 0;編寫一C程序,實現(xiàn)輸入年份和月份,打印輸出該年該月有多少天。4.3 switch語句#include 編寫一C程序,
25、實現(xiàn)輸入年switch(month) case 1:case 3:case 5:case 7:case 8:case 10:case 12: day=31; break;case 4:case 6:case 9:case 11: day=30; break;case 2: if(leap=0) day=28; else day=29; break;default: day=1; if(day=1) printf(Invalid month input!n);else printf(%d.%d has %d days.n, year, month, day);return 0;switch(month) 小 型 案 例任務(wù)描述 運輸公司對用戶計算運費。路程(s)越遠,每公里運費越低。標準如下:s250km 沒有折扣250s500 2%折扣500s1000 5%折扣1000s2000 8%折扣2000s3000 10%折扣3000s 15%折扣 小 型 案 例任務(wù)描述分析 設(shè)每公里每噸貨物的基本運費為p(price的縮寫),貨物重為w(weight的縮寫
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基建金融相關(guān)行業(yè)投資方案
- 跨學(xué)科教學(xué)與綜合性學(xué)習(xí)計劃
- 加強內(nèi)部審核的主管工作總結(jié)計劃
- 提升崗位技能培訓(xùn)的有效性計劃
- 班級園藝計劃
- 營銷培訓(xùn)課件-微信營銷具體實施方案
- 大學(xué)生團日活動班會
- 2024-2025學(xué)年上學(xué)期七年級期末模擬試卷-考點大串講(2024冀教版)(解析版)-A4
- 急診醫(yī)學(xué)課件水、電解質(zhì)與酸堿平衡紊亂
- 《郵政消防安全培訓(xùn)》課件
- 組織的高效溝通ppt課件
- 幼小銜接家長會PPT課件:如何做好幼小銜接
- 中考、高考標準答題卡答題注意事項ppt課件
- VTE預(yù)防健康教育ppt課件(PPT 42頁)
- 分戶驗收表格(全部)(18341)
- 最新laravel框架
- 3、信息系統(tǒng)及其建設(shè)軟件工程基礎(chǔ)7.24
- 中藥分類大全
- 精文減會經(jīng)驗交流材料
- 管道定額價目表
- 真崎航の21部
評論
0/150
提交評論