版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1西西 南南 交交 通通 大大 學(xué)學(xué)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ) 與與 Visual C+Visual C+西南交通大學(xué)西南交通大學(xué)2本章主要內(nèi)容本章主要內(nèi)容v順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì)v選擇結(jié)構(gòu)程序設(shè)計(jì)選擇結(jié)構(gòu)程序設(shè)計(jì)v循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交通大學(xué)西南交通大學(xué)3順序結(jié)構(gòu)的實(shí)現(xiàn)方法順序結(jié)構(gòu)的實(shí)現(xiàn)方法選擇結(jié)構(gòu)的實(shí)現(xiàn)方法選擇結(jié)構(gòu)的實(shí)現(xiàn)方法循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)方法循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)方法三種基本控制結(jié)構(gòu)的實(shí)現(xiàn)三種基本控制結(jié)構(gòu)的實(shí)現(xiàn)西南交通大學(xué)西南交通大學(xué)43.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交通大學(xué)西南交通大學(xué)53.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交
2、通大學(xué)西南交通大學(xué)6編程技巧編程技巧 當(dāng)當(dāng) 型型while 循循 環(huán)環(huán)實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的算法回顧實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的算法回顧3.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交通大學(xué)西南交通大學(xué)7條件的描述方法條件的描述方法 (與選擇結(jié)構(gòu)相同)(與選擇結(jié)構(gòu)相同) 直到型(直到型(untiluntil型)循環(huán)型)循環(huán)3.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交通大學(xué)西南交通大學(xué)8 while(條件條件) 循環(huán)體循環(huán)體 注注: :循環(huán)體是單條語(yǔ)句循環(huán)體是單條語(yǔ)句 或復(fù)合語(yǔ)句或復(fù)合語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語(yǔ)句 3.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交通大學(xué)西南交通大學(xué)9例
3、例 s=1,k=1,i=1; while(i100) k=k+1; s=s+k; cout“s=”s; 使用使用WhileWhile語(yǔ)句語(yǔ)句需要需要注意注意的問(wèn)的問(wèn)題題 循環(huán)體中應(yīng)修正循環(huán)體中應(yīng)修正“循環(huán)條件循環(huán)條件”中的某些中的某些變量的數(shù)值或含有使循環(huán)趨向于結(jié)束的語(yǔ)變量的數(shù)值或含有使循環(huán)趨向于結(jié)束的語(yǔ)句句 循環(huán)體中,循環(huán)體中,沒(méi)有改變條沒(méi)有改變條件的操作,件的操作,死循環(huán)死循環(huán) 3.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交通大學(xué)西南交通大學(xué)10西南交通大學(xué)西南交通大學(xué)113.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交通大學(xué)西南交通大學(xué)12編程技巧編程技巧 表達(dá)式表達(dá)式1-
4、1-變量賦初值變量賦初值表達(dá)式表達(dá)式2-2-循環(huán)的條件循環(huán)的條件表達(dá)式表達(dá)式3-3-修正條件值修正條件值表達(dá)式表達(dá)式1 1和表達(dá)式和表達(dá)式3 3可以是逗號(hào)表達(dá)式可以是逗號(hào)表達(dá)式 for(表達(dá)式表達(dá)式1;表達(dá)式;表達(dá)式2;表達(dá)式;表達(dá)式3) 語(yǔ)句語(yǔ)句 3.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交通大學(xué)西南交通大學(xué)13說(shuō)明:說(shuō)明: 1.1.表達(dá)式表達(dá)式1 1、2 2和和3 3都可省,但分號(hào)不能省都可省,但分號(hào)不能省 如:如:for(for(;條件;條件;) )等同于等同于 for(for(;) ) 等同于等同于 2.2.在表達(dá)式在表達(dá)式1 1中可定義變量中可定義變量, ,但該變量只但該變
5、量只 能在能在forfor循環(huán)中使用循環(huán)中使用 while(while(條件條件) )while(true)while(true)3.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交通大學(xué)西南交通大學(xué)14西南交通大學(xué)西南交通大學(xué)153.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交通大學(xué)西南交通大學(xué)16 說(shuō)明:說(shuō)明: 實(shí)現(xiàn)實(shí)現(xiàn)“直到型直到型”循環(huán)循環(huán) 但是條件成立時(shí)執(zhí)行循環(huán)體。但是條件成立時(shí)執(zhí)行循環(huán)體。 同同 w h i l ew h i l e 語(yǔ) 句 一 樣 , 要語(yǔ) 句 一 樣 , 要 循 環(huán) 體 中 應(yīng) 修 正循 環(huán) 體 中 應(yīng) 修 正 “ 循 環(huán) 條 件循 環(huán) 條 件 ” 中
6、的 某 些 變 量 的 數(shù) 值 或 含 有中 的 某 些 變 量 的 數(shù) 值 或 含 有 使循環(huán)趨于結(jié)束的語(yǔ)句,使循環(huán)趨于結(jié)束的語(yǔ)句,防止陷入死循環(huán)防止陷入死循環(huán)do 語(yǔ)句語(yǔ)句while(條件條件);編程技巧編程技巧 3.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交通大學(xué)西南交通大學(xué)17(do-while)(do-while)#include #include void main(void)void main(void) int i, sum(0); int i, sum(0); coutenter i=; couti; cini; /i=5/i=5 while(i=10) while(
7、i=10) sum+=i; sum+=i; i+; i+; coutsum=sum;coutsum=sum; #include #include void main(void )void main(void ) int i, sum(0); int i, sum(0); cini; cini; /i=5/i=5 do do sum+=i; sum+=i; i+; i+; while(i=10); while(i=10);coutsum=sum;coutsum=sum; 西南交通大學(xué)西南交通大學(xué)18(for)(for)#include #include void main(void)void m
8、ain(void) int i, sum; int i, sum; cini; cini; /i=5/i=5 for(sum=0,i=1;i11;i+)for(sum=0,i=1;i11;i+) sum+=i; sum+=i; coutsum=sumendl; coutsum=sumendl; 西南交通大學(xué)西南交通大學(xué)19西南交通大學(xué)西南交通大學(xué)20西南交通大學(xué)西南交通大學(xué)21編程技巧編程技巧 continuecontinue; 作用:跳過(guò)本次循環(huán),繼續(xù)下一次的循環(huán)作用:跳過(guò)本次循環(huán),繼續(xù)下一次的循環(huán)breakbreak; 作用:終止循環(huán)流程,退出本層循環(huán)語(yǔ)句作用:終止循環(huán)流程,退出本層循環(huán)語(yǔ)
9、句goto goto 標(biāo)號(hào);標(biāo)號(hào); 標(biāo)號(hào):語(yǔ)句標(biāo)號(hào):語(yǔ)句說(shuō) 明說(shuō) 明 : : 標(biāo) 號(hào) 遵 從 標(biāo) 識(shí) 符 的 規(guī) 定 長(zhǎng) 度 不 超 過(guò)標(biāo) 號(hào) 遵 從 標(biāo) 識(shí) 符 的 規(guī) 定 長(zhǎng) 度 不 超 過(guò) 8 8 個(gè) 字個(gè) 字 符;符;GotoGoto語(yǔ)句是無(wú)條件轉(zhuǎn)移語(yǔ)句使用范圍僅語(yǔ)句是無(wú)條件轉(zhuǎn)移語(yǔ)句使用范圍僅 局限于函數(shù)內(nèi)部局限于函數(shù)內(nèi)部循環(huán)控制語(yǔ)句循環(huán)控制語(yǔ)句 3.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交通大學(xué)西南交通大學(xué)223.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交通大學(xué)西南交通大學(xué)233.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交通大學(xué)西南交通大學(xué)24課堂練習(xí)課堂練
10、習(xí)2 2#include#includevoid main(void )void main(void ) int i(1),a(0);int i(1),a(0);for(;i=10;i+)for(;i=10;i+) dodo i+; i+; a+; a+; while(i3)while(i3); ; i+;i+; coutacouta“, ,”iendl;iendl; 請(qǐng)請(qǐng)閱閱讀讀3.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)1 31 32 62 63 93 94 124 12西南交通大學(xué)西南交通大學(xué)25西南交通大學(xué)西南交通大學(xué)263.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交通大學(xué)
11、西南交通大學(xué)27嵌套的循環(huán)控制嵌套的循環(huán)控制 C+C+語(yǔ)言對(duì)循環(huán)嵌套的深度沒(méi)有限制,但語(yǔ)言對(duì)循環(huán)嵌套的深度沒(méi)有限制,但嵌套循環(huán)的循環(huán)控制變量不得同名嵌套循環(huán)的循環(huán)控制變量不得同名 例例 for(i=1;i=100;i+ +) 語(yǔ)句語(yǔ)句1; for (j=0;j=100;j+) 語(yǔ)句語(yǔ)句2; for (j=0;j=40;j+ +) 語(yǔ)句語(yǔ)句3; 語(yǔ)句語(yǔ)句4; 嵌套過(guò)深時(shí),使用嵌套過(guò)深時(shí),使用goto語(yǔ)句要比語(yǔ)句要比break語(yǔ)句簡(jiǎn)便語(yǔ)句簡(jiǎn)便并列關(guān)系并列關(guān)系允許同名允許同名嵌套關(guān)系不嵌套關(guān)系不允許同名允許同名西南交通大學(xué)西南交通大學(xué)28課堂練習(xí)課堂練習(xí)3 3 #include#include vo
12、id main(void ) void main(void ) int n; int n; for(n=100;n=200;n+)for(n=100;n=200;n+) if(!n%3&n%10=3) if(!n%3&n%10=3) coutnendl; coutnendl; if(!(n%3)&n%10=3)改改錯(cuò)題錯(cuò)題:輸輸出出100100到到200200之之間間能被能被3 3整除且尾整除且尾數(shù)為數(shù)為3 3的整的整數(shù)數(shù)。warning C4804: % : unsafe use of type bool in operation假假設(shè)設(shè):n n為為3333?西南交通
13、大學(xué)西南交通大學(xué)29 編程輸出如下圖形編程輸出如下圖形課堂練習(xí)課堂練習(xí)4 4西南交通大學(xué)西南交通大學(xué)30 分析分析3.3 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)西南交通大學(xué)西南交通大學(xué)31#include void main(void) int i,j; for(i=0;i=3;i+) for(j=0;j=2-i;j+) cout ; for(j=0;j=2*i;j+) cout *; coutendl; for (i=0;i=2;i+) for(j=0;j=i;j+) cout ; for (j=0;j=4-2*i;j+) cout *; coutendl; 兩個(gè)兩個(gè)空格空格一一個(gè)個(gè)空格空
14、格一一個(gè)個(gè)星星星星西南交通大學(xué)西南交通大學(xué)32#include void main(void) int i,j; for(i=0;i=3;i+) for(j=0;j=3+i;j+) if (j3-i) cout ; else cout *; coutendl; for (i=0;i=2;i+) for(j=0;j=5-i;j+) if (j=i) cout ; else cout *; coutendl; 西南交通大學(xué)西南交通大學(xué)33將一個(gè)整數(shù)的各位數(shù)字反轉(zhuǎn)后輸出將一個(gè)整數(shù)的各位數(shù)字反轉(zhuǎn)后輸出課堂練習(xí)課堂練習(xí)5 512345=( *10)+4)*10+3)*10+2)*10+1西南交通大學(xué)西南
15、交通大學(xué)34將一個(gè)整數(shù)的各位數(shù)字反轉(zhuǎn)后輸出將一個(gè)整數(shù)的各位數(shù)字反轉(zhuǎn)后輸出# #include include void main(void)void main(void) int n,right_digit; int n,right_digit; cout Enter the number:;cout n;cin n;coutThe number in reverse order is ;coutThe number in reverse order is ;dodo right_digit=n%10; right_digit=n%10; coutright_digit; coutright_
16、digit; n/=10; n/=10; while(n!=0); while(n!=0); coutendl; coutendl; 直接輸出直接輸出課堂練習(xí)課堂練習(xí)5 5西南交通大學(xué)西南交通大學(xué)35#include void main(void) int n,right_digit,i=10,num=0; cout n; do right_digit=n%10;num+=right_digit;if(n/=10)num=num*i; while(n!=0); coutThe number in reverse order is”numendl; 轉(zhuǎn)存輸出轉(zhuǎn)存輸出西南交通大學(xué)西南交通大學(xué)36習(xí)
17、題課西南交通大學(xué)西南交通大學(xué)37 中國(guó)古典的中國(guó)古典的“雞兔同籠問(wèn)題雞兔同籠問(wèn)題”:在:在同一個(gè)籠子里養(yǎng)著雞與兔,但不知其同一個(gè)籠子里養(yǎng)著雞與兔,但不知其中雞有多少只兔有多少只。只知道雞中雞有多少只兔有多少只。只知道雞和兔的總數(shù)是和兔的總數(shù)是a a,雞與兔的總腳數(shù)量,雞與兔的總腳數(shù)量b b,求雞與兔各有多少只。求雞與兔各有多少只。課堂練習(xí)1西南交通大學(xué)西南交通大學(xué)38分析:分析:每只雞有兩條腿,每只兔有四只腿每只雞有兩條腿,每只兔有四只腿假設(shè)有假設(shè)有x x只雞和只雞和y y只兔只兔則根據(jù)已知條件列出方程組如下:則根據(jù)已知條件列出方程組如下: x+y=a x+y=a 雞兔總數(shù)雞兔總數(shù) 2x+4y
18、=b 2x+4y=b 雞兔總腳數(shù)雞兔總腳數(shù) 西南交通大學(xué)西南交通大學(xué)39#include “iostream”using namespace std;void main(void) int a,b,x,y; couta; coutb; y=(b-2*a)/2; x=(4*a-b)/2; cout“雞的數(shù)量為雞的數(shù)量為:”xendl; cout“兔的數(shù)量為兔的數(shù)量為:”yendl; 參考答案參考答案西南交通大學(xué)西南交通大學(xué)40while (a%2!=0)while (a%2!=0) coutcouta;cina; 西南交通大學(xué)西南交通大學(xué)41 猴子吃猴子吃桃桃問(wèn)題。猴子第一天摘下若問(wèn)題。猴子第一
19、天摘下若干個(gè)桃子,當(dāng)即吃了一半還不過(guò)癮,又多干個(gè)桃子,當(dāng)即吃了一半還不過(guò)癮,又多吃了一個(gè)。第二天早上又將剩下的桃子吃吃了一個(gè)。第二天早上又將剩下的桃子吃掉了一半,又多吃了一個(gè)。以后每天早上掉了一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半多一個(gè)。到第都吃了前一天剩下的一半多一個(gè)。到第1010天早上想再吃時(shí),見只剩一個(gè)桃子了。天早上想再吃時(shí),見只剩一個(gè)桃子了。 請(qǐng)?jiān)O(shè)計(jì)實(shí)現(xiàn)求第一天猴子共摘了多請(qǐng)?jiān)O(shè)計(jì)實(shí)現(xiàn)求第一天猴子共摘了多少桃子的算法。少桃子的算法。 課堂練習(xí)課堂練習(xí)2 2西南交通大學(xué)西南交通大學(xué)42 第一天的桃子數(shù)是第第一天的桃子數(shù)是第2 2天桃子數(shù)加天桃子數(shù)加1 1后的后的2 2倍倍
20、x1=(x2+1)x1=(x2+1)2 2 依次類推,直到第依次類推,直到第1010天只剩下天只剩下1 1個(gè)桃子個(gè)桃子分析分析beginbeginx2=1for dat10 step -1 until 1 do x1=(x2+1) x1=(x2+1)2 2 x2=x1 x2=x1 print (print (“猴子總共吃掉的桃子數(shù)為猴子總共吃掉的桃子數(shù)為: : ”,x1) ,x1) endend西南交通大學(xué)西南交通大學(xué)43參考答案參考答案#include using namespace std;void main() int x2=1,x1; for(int dat(10);dat1;dat-
21、) x1=(x2+1)*2; x2=x1; cout猴子總共吃掉的桃子數(shù)為猴子總共吃掉的桃子數(shù)為: x2endl;西南交通大學(xué)西南交通大學(xué)44課堂練習(xí)課堂練習(xí)3 3 編程計(jì)算編程計(jì)算100100個(gè)由鍵盤讀入的所有個(gè)由鍵盤讀入的所有奇數(shù)的和。奇數(shù)的和。(思路:思路:依次讀取依次讀取1100次輸入次輸入的數(shù),的數(shù),對(duì)讀取的每一個(gè)數(shù),先進(jìn)行奇數(shù)判定,對(duì)讀取的每一個(gè)數(shù),先進(jìn)行奇數(shù)判定,若為奇數(shù),則加入總和之中。最后輸若為奇數(shù),則加入總和之中。最后輸出總和。出總和。)西南交通大學(xué)西南交通大學(xué)45課堂練習(xí)課堂練習(xí)3 3for(i=1;iX; if(x%2=1) sum=sum+x;num=0;while(
22、1) cin X; if(x%2=1) sum=sum+x;num+; if(num=100) break;西南交通大學(xué)西南交通大學(xué)46參考答案參考答案 #include void main(void ) int n,sum=0; for(int i=1;i=100;i+) coutplease enter in; if(n%2!=0)sum+=n; coutsum=sumendl; 西南交通大學(xué)西南交通大學(xué)47課堂練習(xí)課堂練習(xí)4 4西南交通大學(xué)西南交通大學(xué)48sum1sum1for i2 step 1 until 100 do sumsum+1 sumsum+1/ /i iprint sum
23、print sum sum1sum1i2i2while i100 do sumsum+ sumsum+ 1/i1/i ii+1ii+1print sumprint sum 西南交通大學(xué)西南交通大學(xué)49 #include void main(void ) int sum=1; for(int i=2;i=100;i+) sum+=1/i; coutsum=sumendl; 閱讀閱讀+討論討論 #include void main(void ) double sum=1; for (int i=2;i=100;i+) sum+=1/i; coutsum=sumendl; 西南交通大學(xué)西南交通大學(xué)5
24、01001991413121.1 課堂練習(xí)課堂練習(xí)5 5西南交通大學(xué)西南交通大學(xué)51 #include void main(void ) double sum=1; int sign(-1); for (int i=2;i=100;i+) sum+=sign*1/i; sign*=-1; coutsum=sum=n)m,n(m=n) 用用m m除以除以n n,求得余數(shù),求得余數(shù)q q 若若q q為零,為零,n n即為所求的最大公約數(shù);即為所求的最大公約數(shù); 若若q q不為零,則更新除數(shù)和被除數(shù)(不為零,則更新除數(shù)和被除數(shù)(nm,qnm,q n n)再做除法,直至余數(shù))再做除法,直至余數(shù)q q為
25、零止。為零止。 這時(shí),相應(yīng)的這時(shí),相應(yīng)的n n即為所求的最大公約數(shù)即為所求的最大公約數(shù) 而最小公倍數(shù)而最小公倍數(shù)= =原始原始m m與與n n值的乘積值的乘積/ /最大公約數(shù)最大公約數(shù)課堂練習(xí)課堂練習(xí)6 6西南交通大學(xué)西南交通大學(xué)54 if(mif(mn)thenn)then am am bn bn else else an an bm bm repeatrepeat qa qab b取余數(shù)取余數(shù) abab bq bq until (q0)算法算法西南交通大學(xué)西南交通大學(xué)55#include void main() int m,n,q,a,b; coutmn; if(mn)a=m;b=n; e
26、lse a=n;b=m; / 保持保持a最大最大 do q=a%b; a=b; b=q; while(q!=0); coutnm與與n的最大公約數(shù)是的最大公約數(shù)是aendl; c o u t m 與與 n 的 最 小 公 倍 數(shù) 是的 最 小 公 倍 數(shù) 是m*n/aendl;參考答案參考答案西南交通大學(xué)西南交通大學(xué)56 數(shù)學(xué)燈謎數(shù)學(xué)燈謎 有算式:有算式: A B C D _ C D C _ _ A B C 其中其中A , B , C , D 均為一位非負(fù)整數(shù)均為一位非負(fù)整數(shù) 要求要求: 找出找出A , B , C , D各值。各值。 課堂練習(xí)課堂練習(xí)7 7西南交通大學(xué)西南交通大學(xué)57算算法法
27、for a1 step 1 until 9 do for b 0 step 1 until 9 do for c 1 step 1 until 9 do for d 0 step 1 until 9 do x=1000a+100b+10c+d y=100c+10d+c z=100a+10b+c if (x-y)=z) then print(a,b,c,d) goto end end:西南交通大學(xué)西南交通大學(xué)58#include iostream.hvoid main() int a,b,c,d,x,y,z; for(a=1;a=9;a+) for(b=0;b=9;b+) for(c=1;c=9
28、;c+) for(d=0;d=9;d+) x=1000*a+100*b+10*c+d; y=100*c+10*d+c; z=100*a+10*b+c; if(x-y)=z)couta=ab=b; coutc=cd=dendl; goto end; end:;參考答案參考答案西南交通大學(xué)西南交通大學(xué)59婚禮上的謊言婚禮上的謊言三對(duì)情侶參加婚禮,三個(gè)新郎為三對(duì)情侶參加婚禮,三個(gè)新郎為A,B,C,三,三個(gè)新娘為個(gè)新娘為X,Y,Z。有人想知道究竟誰(shuí)和誰(shuí)結(jié)。有人想知道究竟誰(shuí)和誰(shuí)結(jié)婚,于是就問(wèn)新人中的三位,得到如下的婚,于是就問(wèn)新人中的三位,得到如下的提示:提示:A說(shuō)他將和說(shuō)他將和X結(jié)婚;結(jié)婚;X說(shuō)她的未
29、婚夫說(shuō)她的未婚夫是是C;C說(shuō)他將和說(shuō)他將和Z結(jié)婚。這人事后知道他結(jié)婚。這人事后知道他們?cè)陂_玩笑,說(shuō)的全是假話。那么,究竟們?cè)陂_玩笑,說(shuō)的全是假話。那么,究竟誰(shuí)和誰(shuí)結(jié)婚呢?誰(shuí)和誰(shuí)結(jié)婚呢?課堂練習(xí)課堂練習(xí)8 8西南交通大學(xué)西南交通大學(xué)60將將A,B,CA,B,C分別用數(shù)字分別用數(shù)字1,2,31,2,3表示表示根據(jù)新人的敘述可得到如下的表達(dá)式:根據(jù)新人的敘述可得到如下的表達(dá)式: X!=1 AX!=1 A不與不與X X結(jié)婚結(jié)婚 X!=3 CX!=3 C不與不與X X結(jié)婚結(jié)婚 Z!=3 CZ!=3 C不與不與Z Z結(jié)婚結(jié)婚題目還隱含著一個(gè)條件:三個(gè)新娘不能互為題目還隱含著一個(gè)條件:三個(gè)新娘不能互為配偶,
30、即有配偶,即有 X!=Y X!=Y 且且 X!=Z X!=Z 且且 Y!=ZY!=Z分析分析西南交通大學(xué)西南交通大學(xué)61算法算法for x1 step 1 until 3 do 窮舉新娘窮舉新娘X所有可能的配偶所有可能的配偶 for y 1 step 1 until 3 do 窮舉新娘窮舉新娘Y所有可能的配偶所有可能的配偶 for z 1 step 1 until 3 do 窮舉新娘窮舉新娘Z所有可能的配偶所有可能的配偶 if (x1 and x 3 and z 3 and x y and x z and y z) then print (“X will marry to ”, x) prin
31、t(“Y will marry to ”, y) print(“Z will marry to ”, z) 西南交通大學(xué)西南交通大學(xué)62#include void main() int x,y,z; for(x=1;x=3;x+) /窮舉新娘窮舉新娘X所有可能的配偶所有可能的配偶 for(y=1;y=3;y+) /窮舉新娘窮舉新娘Y所有可能的配偶所有可能的配偶 for(z=1;z=3;z+) /窮舉新娘窮舉新娘Z所有可能的配偶所有可能的配偶 if(x!=1&x!=3&z!=3&x!=y&x!=z&y!=z) coutX will marry to xen
32、dl; coutY will marry to yendl; coutZ will marry to zendl; X will marry to 2Y will marry to 3Z will marry to 1參考答案參考答案1西南交通大學(xué)西南交通大學(xué)63#include void main() char x,y,z; for(x=A;x=C;x+) for(y=A;y=C;y+) for(z=A;z=C;z+) if(x!=A&x!=C&z!=C&x!=y&x!=z&y!=z) coutX will marry to xendl; coutY
33、will marry to yendl; coutZ will marry to zendl; X will marry to BY will marry to CZ will marry to A參考答案參考答案2西南交通大學(xué)西南交通大學(xué)64課堂練習(xí)課堂練習(xí)9 9 求求100 5000之間有多少個(gè)之間有多少個(gè)各位數(shù)字之和等于各位數(shù)字之和等于5西南交通大學(xué)西南交通大學(xué)65可以采用窮舉的方法,即:可以采用窮舉的方法,即:分析分析用四重循環(huán)分別控制個(gè)位、十位、用四重循環(huán)分別控制個(gè)位、十位、百位、千位的取值百位、千位的取值循環(huán)體中判斷個(gè)、十、百、千位之循環(huán)體中判斷個(gè)、十、百、千位之和是否等于和是否等
34、于5 5 是:統(tǒng)計(jì)是:統(tǒng)計(jì) 否:不統(tǒng)計(jì)否:不統(tǒng)計(jì)西南交通大學(xué)西南交通大學(xué)66 for i 0 step 1 until i=5 do for j 0 step 1 until j=5 do for k 0 step 1 until k=5 do for m 0 step 1 until m=5 do nb=i1000+j100+k10+m if(i+j+k+m=5 and (nb100 and nb5000) then num=num+1 print nb print num算法一算法一枚舉方法枚舉方法西南交通大學(xué)西南交通大學(xué)67#include #include void main() in
35、t i,j,k,l,num=0,number; for(i=0;i=5;i+) for(j=0;j=5-i;j+) /或或j=5 for(k=0;k=5-i-j;k+) for(l=0;l=100&number=5000) num=num+1; coutsetw(8)number; coutn num=numendl; 參考參考答案答案西南交通大學(xué)西南交通大學(xué)68 for nb 100 step 1 until nb=5000 do i=nb1000取整數(shù)取整數(shù) j=(nb 100取整數(shù)取整數(shù)) )對(duì)對(duì)1010求余數(shù)求余數(shù) k=(nb 10取整數(shù)取整數(shù)) )對(duì)對(duì)1010求余數(shù)求余數(shù) m
36、=nbm=nb對(duì)對(duì)1010求余數(shù)求余數(shù) if(i+j+k+m=5) then num=num+1 print nb print num算法二西南交通大學(xué)西南交通大學(xué)69#include #include void main() int i,j,k,m,num=0; for(int nb=100;nb=5000;nb+) i=nb/1000; j=nb/100%10; k=nb/10%10; m=nb%10; if(i+j+k+m=5) num+; coutsetw(8)nb; coutn num=numendl; 參考參考答案答案西南交通大學(xué)西南交通大學(xué)70 如果一個(gè)三位數(shù)的個(gè)位數(shù)、如果一個(gè)三
37、位數(shù)的個(gè)位數(shù)、十位數(shù)和百位數(shù)的立方和等于該十位數(shù)和百位數(shù)的立方和等于該數(shù)自身數(shù)自身, , 則稱該數(shù)為水仙花數(shù)。則稱該數(shù)為水仙花數(shù)。課堂練習(xí)課堂練習(xí)1010西南交通大學(xué)西南交通大學(xué)71for i1 step 1 until i=9for i1 step 1 until i=9 for j 0 step 1 until j=9 for j 0 step 1 until j=9 for k 0 step 1 until k=9 for k 0 step 1 until k=9 mi mii ii+ji+jj jj+kj+kk kk k n100 n100i+10i+10j+kj+k if(m=n)
38、then print m if(m=n) then print m 解法一解法一: :枚舉方法枚舉方法西南交通大學(xué)西南交通大學(xué)72參考答案參考答案#include #include void main()void main() int i,j,k,m,n; int i,j,k,m,n; for(i=1;i=9;i+) for(i=1;i=9;i+)for(j=0;j=9;j+)for(j=0;j=9;j+) for(k=0;k=9;k+) for(k=0;k=9;k+) m=i m=i* *i i* *i+ji+j* *j j* *j+kj+k* *k k* *k;k; n=100 n=100
39、* *i+10i+10* *j+k;j+k; if(m=n) couttm; if(m=n) couttm; coutendl;coutendl; 西南交通大學(xué)西南交通大學(xué)73解法二解法二: :for m100 step 1 until m=999 dofor m100 step 1 until m=999 do i=m i=m100 100 取整數(shù)取整數(shù) j=(mj=(m1010取整數(shù)取整數(shù)) )對(duì)對(duì)1010求余數(shù)求余數(shù) k=mk=m對(duì)對(duì)1010求余數(shù)求余數(shù) n=in=ii ii+ji+jj jj+kj+kk kk k if(m=n) print m if(m=n) print m 西南交通
40、大學(xué)西南交通大學(xué)74#include #include void main()void main() int m,n,i,j,k; int m,n,i,j,k; for(m=100;m=999;m+) for(m=100;m=999;m+) i=m/100;j=m/10%10;k=m%10; i=m/100;j=m/10%10;k=m%10; n=i n=i* *i i* *i+ji+j* *j j* *j+kj+k* *k k* *k;k; if(m=n) couttm; if(m=n) couttm; coutendl; coutendl; 參考答案參考答案西南交通大學(xué)西南交通大學(xué)75編寫
41、程序輸出以下圖案編寫程序輸出以下圖案 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *課堂練習(xí)課堂練習(xí)11 11西南交通大學(xué)西南交通大學(xué)76 分析分析西南交通大學(xué)西南交通大學(xué)77#include #include void main( )void main( ) int i,j,n=4; int i,j,n=4; for(i=1;i=n;i+)for(i=1;i=n;i+) /輸出前輸出前4 4行圖案行圖案 for(j=1;j=30;j+)for(j=1;j=30;j+) cout cout“ ”; ; /在圖案左側(cè)
42、空在圖案左側(cè)空3030列列 for(j=1; j=8-2for(j=1; j=8-2* *i ;j+)i ;j+) cout cout“ ”; ; for(j=1; j=2for(j=1; j=2* *i-1 ;j+)i-1 ;j+) cout cout“* *”; ; coutendl; coutendl; 西南交通大學(xué)西南交通大學(xué)78 for(i=1;i=n-1;i+)for(i=1;i=n-1;i+) /輸出后輸出后3 3行圖案行圖案 for(j=1;j=30;j+) for(j=1;j=30;j+) cout cout“ ”; ; /在圖案左側(cè)空在圖案左側(cè)空3030列列 for(j=1; j=7-2for(j=1; j=7-2* *i ;j+)i ;j+) cout cout“* *”; ; coutendl; co
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度安徽省租賃房屋租賃合同解除協(xié)議2篇
- 二零二五版多功能會(huì)議場(chǎng)地租賃服務(wù)合同模板3篇
- 二零二五版廢渣運(yùn)輸合同環(huán)保評(píng)估與整改方案3篇
- 二零二五版公積金貸款個(gè)人公積金提取借款合同3篇
- 二零二五版工業(yè)自動(dòng)化生產(chǎn)線改造項(xiàng)目承包合同范本3篇
- 二零二五版房屋屋頂光伏發(fā)電系統(tǒng)檢測(cè)維修合同范本3篇
- 二零二五年度智慧能源管理系統(tǒng)集成合同2篇
- 二零二五年機(jī)床設(shè)備采購(gòu)與客戶項(xiàng)目整體解決方案合同3篇
- 二零二五年抖音廣告創(chuàng)意策劃與投放服務(wù)合同3篇
- 二零二五年新型環(huán)保建材生產(chǎn)與建筑垃圾回收處理合同3篇
- 常用靜脈藥物溶媒的選擇
- 2023-2024學(xué)年度人教版一年級(jí)語(yǔ)文上冊(cè)寒假作業(yè)
- 當(dāng)代西方文學(xué)理論知到智慧樹章節(jié)測(cè)試課后答案2024年秋武漢科技大學(xué)
- 2024年預(yù)制混凝土制品購(gòu)銷協(xié)議3篇
- 2024-2030年中國(guó)高端私人會(huì)所市場(chǎng)競(jìng)爭(zhēng)格局及投資經(jīng)營(yíng)管理分析報(bào)告
- GA/T 1003-2024銀行自助服務(wù)亭技術(shù)規(guī)范
- 《消防設(shè)備操作使用》培訓(xùn)
- 新交際英語(yǔ)(2024)一年級(jí)上冊(cè)Unit 1~6全冊(cè)教案
- 2024年度跨境電商平臺(tái)運(yùn)營(yíng)與孵化合同
- 2024年電動(dòng)汽車充電消費(fèi)者研究報(bào)告-2024-11-新能源
- 湖北省黃岡高級(jí)中學(xué)2025屆物理高一第一學(xué)期期末考試試題含解析
評(píng)論
0/150
提交評(píng)論