版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語(yǔ)言程序設(shè)計(jì)(A)Guo S.2022/7/252順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)C的三個(gè)結(jié)構(gòu)2022/7/253循環(huán)的最基本的概念循環(huán)的基本要素 循環(huán)變量等初始化 進(jìn)入循環(huán)的條件 循環(huán)體(執(zhí)行部分) 循環(huán)變量的變更2022/7/254wile語(yǔ)句A;while(B)語(yǔ)句組;C;D;B!=0語(yǔ)句組DYesNoACA2022/7/25wile語(yǔ)句A;while(B)語(yǔ)句組;C;D;A 初始化B 循環(huán)條件C 循環(huán)變量變更語(yǔ)句組 完成循環(huán)體的執(zhí)行D: 結(jié)束循環(huán)后的語(yǔ)句break; continue; goto X;break; 語(yǔ)句直接退出循環(huán),只能退出一層循環(huán)continue; 無(wú)視后續(xù)循環(huán)體內(nèi)語(yǔ)句,直
2、接判斷下次循環(huán)條件goto X; 可以跳出循環(huán),可以轉(zhuǎn)向任意語(yǔ)句,除了從循環(huán)外轉(zhuǎn)向循環(huán)內(nèi)2022/7/256i=1; sum=0; N=1000;while( 1 )sum += i*i;if(sum=N) break;i+;printf(最大的i為:%dn, i-1);2022/7/257滿足(i*i)N的最大的ii=N1=100; N2=200;while( iN2 )j=2;while(ji)if(i%j=0)break;j+;if(j=i)printf(%d , i);i+;2022/7/258輸出N1=100到N2=200之間的素?cái)?shù)i=120340; while( i!=0 )if(
3、i%10=0)i/=10;continue;printf(%d, i%10);i/=10;2022/7/259逆序輸出:不為零的部分X:scanf(%d, &score);if(score100)goto X;/可實(shí)現(xiàn)循環(huán)Y:a2 = a*a;b2 = b*b;if(b2100) goto Z;goto Y;Z: c2 = c*c;2022/7/25102022/7/25112022/7/2512練習(xí):逆輸出整數(shù)例如輸入139,輸出931輸入519085,輸出580915逆輸出分析:個(gè)位十位百位.a%10,a/10%10,a/100%10.直到a/10=0循環(huán)體執(zhí)行次數(shù)不定!2022/7/25
4、13練習(xí):輸入一個(gè)正整數(shù),判斷是否為素?cái)?shù)理清思路:何謂素?cái)?shù)?如何利用循環(huán)?2022/7/2514n%i等于0: n可以被i整除,n不是素?cái)?shù).但是表達(dá)式n%i的值為零的話,if語(yǔ)句判斷就會(huì)是假,不能執(zhí)行選擇。if( n%i=0 ).while語(yǔ)句i=N1=100; N2=200;while( iN2 )j=2;while( ji )if(i%j=0)break;j+;if(j=i)printf(%d , i);i+;2022/7/2515判斷一個(gè)數(shù)其他思路?2022/7/2516flg = 1;/ 假設(shè)n為素?cái)?shù),標(biāo)記1i = 2;/ 循環(huán)變量初始化 while(in)if( (n%i)=0 )f
5、lg = 0; break;i+; if(flg!=0)printf(yesn);else printf(non);當(dāng)flg等于0時(shí),已經(jīng)得知非素?cái)?shù),循環(huán)沒(méi)有必要再執(zhí)行下去!Q:此段程序有沒(méi)有改善的余地?2022/7/2517flg = 1;/ 假設(shè)n為素?cái)?shù),標(biāo)記1i = 2;/ 循環(huán)變量初始化 while(i n)if( (n%i)=0 )flg = 0; break;i+; if(flg!=0)printf(yesn);else printf(non);while(i=n/2)while(i=sqrt(n)2022/7/2518 從鍵盤(pán)輸入 n值,輸出一行n個(gè)*號(hào)。 例:輸入 n=6,輸出
6、的圖形如下:1. 輸入n;2. 初始化計(jì)數(shù)i;3. 輸出到一行,共n個(gè)*;思路:scanf(“%d”,&n);i=1;while(i=n) printf(“*”); /不換行 /打印一個(gè) * ; i+; 每次打印一個(gè) *,打印n次,用計(jì)數(shù)器i和n的比較來(lái)控制次數(shù)舉例:打印圖形* * * * * *2022/7/2519練習(xí):輸入兩個(gè)正整數(shù)a和b,求其最大公約數(shù)理清思路:何謂公約數(shù)?如何利用循環(huán)?2022/7/2520最大公約數(shù)不會(huì)大于 a和b中的最小數(shù)!先找出a和b中的小數(shù):min=ab?a:b;設(shè)參數(shù)i從min開(kāi)始到2,看可否同時(shí)整除a和b,能的話,就是最大公約數(shù)。a%i等于0: a可以被i
7、整除b%i等于0:b可以被i整除2022/7/2521i= a=2)if( (a%i)=0 & (b%i)=0 )gcd = i;i = 0;else i-; 當(dāng)同時(shí)整除時(shí),i就是最大公約數(shù)。循環(huán)沒(méi)有必要再執(zhí)行下去,強(qiáng)制設(shè)置i=0退出循環(huán)!2022/7/25222022/7/2523for語(yǔ)句實(shí)現(xiàn)循環(huán)for 語(yǔ)句格式:for(A; B; C)語(yǔ)句組;for(A; B; C)語(yǔ)句組;D;循環(huán)變量的更新!控制循環(huán)體的執(zhí)行次數(shù)!2022/7/2524for語(yǔ)句for(A; B; C)語(yǔ)句組;D;B!=0語(yǔ)句組DYesNoACA2022/7/2525for和wile語(yǔ)句等價(jià)for(A; B; C)語(yǔ)句
8、組;D;A;while(B)語(yǔ)句組;C;D;B!=0語(yǔ)句組DYesNoACA2022/7/2526習(xí)慣用法for(初始化A; 條件B; 循環(huán)變量變化C)循環(huán)體;for(i=0; i10; i+).for(i=100; i99; i-).初始化A; while(條件B)循環(huán)體;循環(huán)變量變化Ci=0; while(i10).; i+i=100; while(i99).; i-2022/7/2527當(dāng)循環(huán)體語(yǔ)句多于一條時(shí),用復(fù)合語(yǔ)句 。否則循環(huán)只對(duì)for語(yǔ)句后的第一個(gè)語(yǔ)句起作用必須有對(duì)循環(huán)變量的修正語(yǔ)句,否則,易出現(xiàn)“死循環(huán)”條件表達(dá)式要有括號(hào),后面不加分號(hào) for(A; B; C)。否則循環(huán)體為空
9、語(yǔ)句!for 語(yǔ)句注意事項(xiàng)2022/7/2528練習(xí):讀程序段int i=7;while(i3)printf(“%d “, i);i-;printf(“ni=%d“,i);?2022/7/2529練習(xí):讀程序段int i;for(i=7; i3; i-)printf(“%d “, i);printf(“ni=%d“,i);2022/7/2530練習(xí):讀程序段 int x=2468; printf(“result=”); while(x0) printf(“%d”, x%10); x = x/10; 2022/7/2531練習(xí):讀程序段int n=20;while(n=16) printf(%d
10、,n); n = n-1;int n=20;while(n=16)n = n-1; printf(%d,n); 2022/7/2532練習(xí):讀程序段for(i=12345; i!=0; i/=10) printf(%d, i%10); n=17;while(n!=0)printf(%d,n%2);n/=2; 2022/7/2533練習(xí):讀程序段for(k=10; k15; k+) if( k%2 =0 ) printf(“-); else printf(“!);2022/7/2534練習(xí):讀程序段int x, y;x=0;for(y=1; y=10)break;x = x + y;printf
11、(“x=%dn”, x);printf(“y=%d”, y);2022/7/2535練習(xí):讀程序段int x, y;y = 0;x = 0;while(y=5)break;x = x + y; y+;printf(“x=%dn”, x);printf(“y=%d”, y);2022/7/2536練習(xí)for語(yǔ)句鍵盤(pán)輸入n=1,求和sum=1+2+3+。+n鍵盤(pán)輸入sum=1,求滿足sum=12+22+。+n2 的最大的n2022/7/2537練習(xí)for語(yǔ)句鍵盤(pán)輸入n=1,求和sum=1+2+3+。+nsum=12+22+。+n2sum=13+23+。+n3鍵盤(pán)輸入sum=1,求滿足sum=1+2
12、+3+。nsum=12+22+。+n2sum=13+23+。+n3 的最大的n2022/7/2538for?while?完全等價(jià),習(xí)慣一般:循環(huán)次數(shù)確定用 forsum=12+22+32+.+n2 統(tǒng)計(jì)n人成績(jī)的平均次數(shù)不定用while 輸入直到正數(shù) 滿足sum=12+22+32+.+n2 的最大的n2022/7/2539do-while語(yǔ)句A;do語(yǔ)句組; C; while(B);D;語(yǔ)句組DYesNoACB!=0A2022/7/2540for / while / do-whilefor(A; B; C)語(yǔ)句組;D;A;while(B)語(yǔ)句組;C;D;先執(zhí)行A; B;語(yǔ)句組;C;是否執(zhí)行?
13、2022/7/2541for / while / do-whilefor(A; B; C)語(yǔ)句組;D;A;while(B)語(yǔ)句組;C;D;A;do 語(yǔ)句組;C; while(B);D;先執(zhí)行A; 至少執(zhí)行一次語(yǔ)句組;C;執(zhí)行B; 2022/7/2542for?while?do-while?for和while完全等價(jià),習(xí)慣循環(huán)次數(shù)確定用 forsum=12+22+32+.+n2 統(tǒng)計(jì)n人成績(jī)的平均次數(shù)不定用while 輸入直到正數(shù) 滿足sum=12+22+32+.+n2 的最大的ndo-while 輸入數(shù)據(jù)合理性檢查do printf(“輸入num:”);scanf(“%d”, &num);wh
14、ile(num0);2022/7/2543do-while 輸入數(shù)據(jù)合理性檢查: 輸入正整數(shù)int n, psw;do printf(“輸入psw:”);scanf(“%d”, &psw);while(psw=0);.重新輸入條件:小于等于零2022/7/2544do-while 輸入數(shù)據(jù)合理性檢查: 密碼正整數(shù)、且最多輸入三次int n, psw;n=0;do printf(“輸入psw:”); scanf(“%d”, &psw); n+;while(n3 & psw=3 | psw=0) return 1;/可以進(jìn)入系統(tǒng).重新輸入條件:密碼小于等于0 同時(shí)錯(cuò)誤次數(shù)小于32022/7/254
15、5do-while 輸入數(shù)據(jù)合理性檢查: 密碼輸入錯(cuò)誤次數(shù)最多三次int n, psw, P=123456;n=0;do printf(“輸入psw:”); scanf(“%d”, &psw); n+;while(n=3 | psw=1k+2k+.nk的最大的n輸入n,求sum=1/2+2/3+3/5+.的前n項(xiàng)和輸入n人成績(jī),計(jì)算平均、最高分、最低分.2022/7/2547練習(xí):如何設(shè)計(jì)循環(huán)計(jì)算類(lèi)輸入n,倒序打印每一位。例如輸入123,打印321,輸入987654,打印456789輸入a,b,計(jì)算最大公約數(shù)、最小公倍數(shù)輸入類(lèi)N組數(shù)據(jù)多組數(shù)據(jù)判斷數(shù)據(jù)合理性繪圖類(lèi)2022/7/2548練習(xí):如何
16、設(shè)計(jì)循環(huán)輸入類(lèi)N組數(shù)據(jù)多組數(shù)據(jù)scanf(“%d”, &n);i=0; while(in) scanf(“%d%d”, &a,&b); i+; /scanf(“%d”, &n);while(n-) scanf(“%d%d”, &a,&b); /while(scanf(“%d”, &n)!=EOF)/N=0;do scanf(“%d”, &score); N+;while(score100) & N3);2022/7/2549練習(xí):如何設(shè)計(jì)循環(huán)輸入類(lèi)判斷數(shù)據(jù)合理性doscanf(“%d”, &score);while(score100);N=0;do scanf(“%d”, &score); N+; cd = (score100) & N3;while(cd!=0);2022/7/2550練習(xí):如何設(shè)計(jì)循環(huán)列舉輸出類(lèi)一個(gè)如何輸出計(jì)算類(lèi)找到算法:循環(huán)體內(nèi)執(zhí)行什么繪制圖形類(lèi)找到規(guī)律2022/7/2551練習(xí):如何設(shè)計(jì)循環(huán)繪制圖形類(lèi)輸入n=4, 如何輸出以下圖形? * * * * * * * * * * * * * * * * * * * * * *2022/7/2552練習(xí)輸入n,打印圖案* * * * * * * * * * *n2*n-1* * * * * * * * * * * * * *
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版工程清包合同:工程設(shè)計(jì)變更與施工方案調(diào)整
- 2024某企業(yè)與咨詢公司之間的管理咨詢服務(wù)合同
- 2025年度香菇食品產(chǎn)品線擴(kuò)展與市場(chǎng)拓展合同3篇
- 二零二五版智慧交通系統(tǒng)開(kāi)發(fā)與技術(shù)支持協(xié)議2篇
- 二零二五版二手房買(mǎi)賣(mài)合同公證與節(jié)能環(huán)保改造服務(wù)協(xié)議2篇
- 2025年度跨國(guó)企業(yè)集團(tuán)財(cái)務(wù)合并報(bào)表編制合同3篇
- 2024年銷(xiāo)售代理協(xié)議(意向)3篇
- 個(gè)性化活動(dòng)策劃方案協(xié)議2024規(guī)格版A版
- 2024版地暖安裝工程承包合同書(shū)
- 2024版企業(yè)業(yè)務(wù)外包人員協(xié)議模板版B版
- 前列腺增生藥物治療
- 人工智能知識(shí)圖譜(歸納導(dǎo)圖)
- 滴滴補(bǔ)貼方案
- 民宿建筑設(shè)計(jì)方案
- 干部基本信息審核認(rèn)定表
- 2023年11月外交學(xué)院(中國(guó)外交培訓(xùn)學(xué)院)2024年度公開(kāi)招聘24名工作人員筆試歷年高頻考點(diǎn)-難、易錯(cuò)點(diǎn)薈萃附答案帶詳解
- 春節(jié)行車(chē)安全常識(shí)普及
- 電機(jī)維護(hù)保養(yǎng)專(zhuān)題培訓(xùn)課件
- 汽車(chē)租賃行業(yè)利潤(rùn)分析
- 春節(jié)拜年的由來(lái)習(xí)俗來(lái)歷故事
- 2021火災(zāi)高危單位消防安全評(píng)估導(dǎo)則
評(píng)論
0/150
提交評(píng)論