




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、3.7 switch語句及其典型應(yīng)用,公歷歷法的來龍去脈switch :開關(guān),電閘,轉(zhuǎn)換;使用 switch語句時涉及到以下幾個單詞:case:事情,案例,情形,場合;平時我們聊天說“小事一樁時偶爾也說成是“小case;break:暫停,打破,違犯,中斷,超過,突變;default:默認(rèn)值,缺省值,食言,不履行責(zé)任,律缺席switch語句在程序中的使用語法格式如下:switchncase n1:語句 1;語句 2;.語句 m1; break;case n2:語句1;語句 2;語句 m2; break;casenm :語句1;語句2;語句 m3; break;default:語句1;語句 2;語
2、句 mm; break;switch語句可根據(jù)語句中n的不同值執(zhí)行其后大括號內(nèi)的相應(yīng)語句.局部執(zhí)行流程如下所示.switch(n)如果口等于門2,nli 語句 L> case n2; 語句L語句售.語句ml q break t -5 語句2;語句m2i breakj,如果門等于嗎case陋:語句1,堂g加近七語句L<語句2:語句break;->語句2 5語句nun. break i-5switch語句中的n值僅限于整數(shù)或字符兩者根本等效而不能是實(shí)數(shù);例3.7_1:從鍵盤輸入一個簡單的數(shù)學(xué)表達(dá)式,如 35+52;計算并顯示該表達(dá)式的值.例如輸入 35+52/,那么輸出:35+5
3、2=87;輸入 35-52/,那么輸出:35-52=-17 ;輸入 35*52/,貝U 輸出:35*52=1820;分析:我們首先建立一個名稱為switch.c的C程序文件.用一個字符變量c來存放運(yùn)算符(' + '、'、*'、'/、',再定義三個整型變量分別用來存放兩個操作數(shù)及運(yùn)算結(jié)果;用switch語句實(shí)現(xiàn),程序代碼如下開始為粗代碼,后面為細(xì)代碼,輸入時先粗后細(xì)#include<stdio.h> main()int a1,a2,a3;char c1;scanf("%d%c%d",&a1,&c1,&
4、amp;a2); switch()#include<stdio.h> main() ( int a1,a2,a3;/1 char c1;/2 scanf("%d%c%d,&a1,&c1,&a2);3 switch( c1 )/4 /5 case '+' : a3=a1+a2; printf("%d+%d=%dn",a1,a2,a3); break;/6 case '-' : a3=a1-a2; printf("%d-%d=%dn",a1,a2,a3); break;/7 cas
5、e '*' : a3=a1*a2; printf("%d*%d=%dn",a1,a2,a3); break;/8 case '/' : a3=a1/a2; printf("%d/%d=%dn",a1,a2,a3); break;/9 case '%' : a3=a1%a2; printf("%d%d=%dn",a1,a2,a3); break;/10 default: printf("Error n");/11 /12 ) 程序第六行(/6)中的case與其后的字符(
6、加號)之間要用空格隔開;一定要寫成如下所 示正確形式: case 1'+': printf("%d+%d=%dn",a1,a2,a3); break;/6(空格不能漏掉)注意程序第十行(/10)中打印函數(shù)printf雙引號內(nèi)的表達(dá)式是:d%d=%d ;而不是:d%d=%d ;讀者可以試一下兩者輸出的區(qū)別(符號在C語言中單獨(dú)使用時有特殊含義,為了在字符串中輸出一個符號,C語言中只能用%來表示,其它特殊字符的特殊輸出方式可參考本書結(jié)尾處附錄中相應(yīng)內(nèi)容);運(yùn)行程序,輸入相應(yīng)的表達(dá)式(如35+45/);即可計算并顯示表達(dá)式的值(注意輸入時不能夾雜空格,如不能錯誤的輸
7、入為35匚十 - 45/,由于空格也是字符,結(jié)合程序第三行(/3 )的掃描語句知道,如果 35和加號(+ )之間有空格那么字符變量c1被賦予了空格字符而不再是加號字符了).當(dāng)輸入錯誤運(yùn)算符(不屬前五種情況之一者)時, switch語句 就執(zhí)行default缺省分支. 程序執(zhí)行流程如下所示.Sine ludB<Etdi c. h>第六行代碼T第七行代碼?W 第八行代碼1/%i,f第十行代碼“第九行代碣"I電*13結(jié)束第11行代瑪L1DVchar cl:/2wwcgf 口將也dftal,也c 1也2); ffZswitch(cl)/4C=-f +'以上情況都不是C語言
8、中有的字符輸出格式比擬特殊,如符號'的printf函數(shù)輸出格式為:%;雙引號"對應(yīng)的printf函數(shù)輸出格式為:;單引號'對應(yīng)的printf函數(shù)輸出格式為:;反 斜杠對應(yīng)的printf函數(shù)輸出格式為:;這些特殊符號不經(jīng)常用,讀者作為一般性了解即可參考本書末尾的附表2.運(yùn)行程序,分別輸入以下數(shù)據(jù):35+45/ , 那么結(jié)果為 35+45= 80 ; 35 45/,那么結(jié)果為 35-45=- 10 ;35*45 / ,那么結(jié)果為35*45 = 1575 ; 1 LJ /2/,那么結(jié)果為 Error 想一想為什么;1/2/ ,那么結(jié)果為 1/2=0 ; 1%2/ ,那么結(jié)果
9、為 1%2=1 ; 35/45/ ,那么結(jié)果為 35/45 = 0 ; 35%45/ ,那么結(jié)果為35%45= 35 如圖3_21所示;注意百分號在 C語言中表示整數(shù)之間 的整除取余運(yùn)算,而兩個整數(shù)之間直接相除時小數(shù)局部被硬性舍棄;圖3_21 :注意整數(shù)之間直接相除時的結(jié)果本程序可以方便的驗(yàn)證前面第二章中的首同尾合十整數(shù)之間相乘時的速算法那么,為此,分別輸入以下表達(dá)式:12*18/; 23*27/; 36*34/; 45*45/; 56*54/; 67*63/; 78*72/;89*81 /;那么結(jié)果分別如圖 3_22所示,結(jié)果首同尾合十心算法那么可見兩者十分吻合.13*18=216陛
10、3;$3 口/y k圖3_22:用本程序驗(yàn)證首同尾合十整數(shù)相乘時的心算法那么本程序運(yùn)行后輸入數(shù)據(jù)時,數(shù)據(jù)之間不能夾雜空格,如1/2/不能錯誤的輸入為1 一 / 一 2/;否那么就會發(fā)生錯誤;這一點(diǎn)可以通過程序調(diào)試的方法來驗(yàn)證,下面兩個圖說明了單步執(zhí)行程序時不同輸入數(shù)據(jù)方法帶來的變量不同賦值結(jié)果.圖3_23:輸入數(shù)據(jù)1/2/時的情況從圖3_23可以看出,變量al賦值正確,變量cl被錯誤的賦值了空格字符,而變量 a2由于 數(shù)據(jù)的掃描格式 d與數(shù)據(jù)類型字符/不符而沒有被賦值;圖3_24:輸入數(shù)據(jù)1/2/時的情況從圖3_24可以看出,變量 al、cl和a2都被賦予了正確的數(shù)據(jù);對于整數(shù)和實(shí)數(shù)型數(shù)據(jù),用
11、scanf函數(shù)掃描數(shù)據(jù)時它們的輸入格式都是:數(shù)據(jù)之間用空格隔開,但是如果有字符型數(shù)據(jù),那么一定要意識到空格也是字符,因此數(shù)據(jù)之間可能是緊密相連而不能再以空格隔開了.例3.7_2:從鍵盤輸入年份和月份,輸出該月對應(yīng)的天數(shù).分析:一年有12個月,大月31天,共7個大月:1、3、5、7、8、10、12;小月30天,共 4個小月:4、6、9、11; 2月份很特殊,閏年 29天,平年28天;為什么2月份只有28 天或29天,而其它月份不是 30天就是31天哪原來公歷的前身是公元前46年古羅馬皇帝儒略愷撒創(chuàng)始的,愷撒當(dāng)皇帝時,當(dāng)時的歷法與天象氣候等相差三個月之多冬天變成了春天,春天變成了夏天,夏天變成了秋
12、天, 秋天成立冬天,于是他采納了一位埃及天文學(xué)家的建議,廢除舊歷,公布一種完全的太陽 歷,即儒略歷.規(guī)定一年 365.25天,每年12個月,單月31天,雙月30天,全年共366天6 X 31+6X 30=366,二月是雙月當(dāng)然也是 30天.由于平年每年只有 365天,因此平年需要去 掉一天,當(dāng)時羅馬判處死刑犯都是在每年的二月份執(zhí)行的,為了使這個不吉利的月份時間短一些,愷撒就決定平年里在二月份去掉一天.愷撒認(rèn)為自己偉大,就把他出生的月份 7月改成自己的名字,七月的英文JULY,即儒略.后來,愷撒的兒子奧古斯都作了皇帝,他發(fā)現(xiàn)愷撒出生在7月,是大月,而自己出生在 8月,卻是小月.為了和愷撒保持同等
13、尊嚴(yán),奧古 斯都就決定從不吉利的二月份抽出一天補(bǔ)在8月份,使8月份也變成了大月,并把8月份也改為自己的名字,八月的英文AUGUST,即奧古斯都.從此二月份又少了一天,即平年為28天,閏年為29天.同時,由于8月由小月改為大月,8月后面的月份也要隨之改變,改為單 月為小月,雙月為大月.這樣一來,一年中大月是 1 3、5 7、8、10 12月,小月是4、6、 9、11月,2月份平年為28天,閏年為29天.這種設(shè)置方法一直延續(xù)到現(xiàn)在.而現(xiàn)在的國際通行歷法公歷是羅馬教皇格里高利十三世在1582年公布施行的,是根據(jù)古羅馬的儒略歷修訂而成的,最早稱格里歷,在中國叫陽歷.儒略歷的平均年長是365.25日,與
14、實(shí)際年長長度 365.2422日相差0.0078日.從儒略歷公布執(zhí)行公元前46年至U 16世紀(jì)末,累計誤差已有1伏.為徹底消除這一差值,羅馬教皇格里高利十三世決定對儒略歷時間進(jìn)行調(diào)整,并新增了一條置閏法那么:公元年數(shù)被4整除的仍為閏年,但逢百之年只能被400整除者才是閏年.這樣在 400年中比原儒略歷少 3個閏年少3天,每年的平均長度為 365.2425日這與我國元朝時郭守敬在“授時歷里提出的年長剛好相等!,與地球繞太陽轉(zhuǎn)一周的實(shí)際年長長度 365.2422日十分接近,理論上 1萬年的累計誤差不超過 3天.公歷先 在天主教國家使用,后推行到新教國家,20世紀(jì)初全世界普遍采用.我國辛亥革命以前使
15、用的一直是陰歷郭守敬的授時歷沒被采用,真是可悲!,又叫農(nóng)歷或夏歷,它是以月亮圓缺變化的周期為依據(jù),一個月約29.5天,12個月為354天或355天,為了協(xié)調(diào)農(nóng)歷與天象氣候等的關(guān)系,古人采用了一種“十九年置七閏的方法,即每19年中設(shè)7個閏年,閏年比平年多一個月,即農(nóng)歷的閏年有13個月,共384天或383天.我國于辛亥革命后的191在孫中山下令采用公歷,同時兼用中華民國紀(jì)年,194W中華人民共和國建立后采用公歷紀(jì)年,終止中華民國紀(jì)年.其實(shí)日歷是非常復(fù)雜的,有人建議取消大小月份的說法,重新規(guī)定每月為30天,那么12個月就是30X 12= 360天,外加5天的共休假類似于我國的春節(jié),并把閏年多出的一天
16、也 加在年終的休假里.這樣我們買的日歷年年都可以重復(fù)使用了,全世界將節(jié)省很多重復(fù)印刷日歷的紙張.只可惜這個合理化建議在聯(lián)合國大會上投票公決時失敗了 !我國陰歷雖然被廢除了,但由于其源遠(yuǎn)流長, 特別是很多節(jié)氣如春節(jié),端午節(jié),中秋節(jié)等,都是按陰歷確定的,因此陰歷至今在民間還廣為流傳.官方采用陽歷,民間的陰歷還在起作用,這給整個社會造成了很大的不便,例如有時間陽歷元月十幾號過春節(jié),有時間陽歷二月十幾號過春節(jié),早晚相差1個月之多,致使學(xué)校的春季和秋季兩個學(xué)期不但不等長陽歷9月份開學(xué)是法定的,春節(jié)時間飄搖不定放寒假也是法定的,而且有時差距1個月之多,其影響可想而知;再例如工業(yè)生產(chǎn),元月份和二月份的產(chǎn)量統(tǒng)
17、計數(shù)字與去年同期相比 失去意義,由于去年春節(jié)假期在元月份,而今年有可能在二月份里中途停產(chǎn)過春季.下面我們編寫一個 C程序,要求通過鍵盤輸入年份和月份,計算并輸出該月對應(yīng)的天數(shù). 建立一個名稱為 year.c的C程序,在標(biāo)準(zhǔn)框架里面填寫如下代碼: #include<stdio.h>main(int year,month,days; /1scanf("%d%d",&year,&month); /2switch(month) /3/4case 1: /5case 3: /6case 5: /7case 7: /8case 8: /9case 10: /
18、10case 12:days=31; break;/11case 4: /12case 6: /13case 9: /14case 11:days=30 ;break;/15 case 2: /16ifyear%4=0 && year%100!=0|year%400=0/ 17days=29;/18 else days=28; break; /19 default: days=0; /20 /21 ifdays!=0 /22 printf"days=%dn",days; /23 else /24printf"Data Error'n" /25 注意第五行/5中case與整數(shù)1之間要用空格隔開:case J 1 :而不能連著寫:case1 : 解釋如
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度綜合性醫(yī)院消毒滅菌專業(yè)服務(wù)合同
- 2025年度農(nóng)業(yè)土地整治土地承包合同
- 2025年度抵押車個人車輛抵押權(quán)解除后續(xù)貸合同模板
- 寵物運(yùn)輸司機(jī)勞務(wù)協(xié)議
- 2025年廣東生態(tài)工程職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫必考題
- 2025年二手房市場分析:二手房市場降幅收窄
- 2024年三季度報重慶地區(qū)A股主營業(yè)務(wù)利潤排名前十大上市公司
- 2024-2025學(xué)年福建省福州市馬尾第一中學(xué)等六校高二上學(xué)期期中聯(lián)考生物試卷
- 2023-2024學(xué)年湖南省衡陽市祁東縣高考考前仿真聯(lián)考三生物試卷
- 意見征詢稿回復(fù)函
- 《數(shù)據(jù)采集技術(shù)》課件-網(wǎng)絡(luò)爬蟲
- 網(wǎng)絡(luò)地址轉(zhuǎn)換NAT
- 【MOOC】營養(yǎng)學(xué)-武漢大學(xué) 中國大學(xué)慕課MOOC答案
- 工資薪金管理制度模版(3篇)
- 廣東省茂名市高州市五校聯(lián)考2024-2025學(xué)年高一上學(xué)期12月月考化學(xué)試題(含答案)
- 高等數(shù)學(xué)(二)(山東聯(lián)盟)知到智慧樹章節(jié)測試課后答案2024年秋青島科技大學(xué)
- 《高級算法設(shè)計》課件 第2章 高級圖算法
- 小兒泌尿系統(tǒng)感染的護(hù)理
- DB14∕T 92-2010 M5、M15車用甲醇汽油
- 農(nóng)村飲水協(xié)議書(2篇)
- 疼痛的護(hù)理講課課件
評論
0/150
提交評論