![第4章 簡單程序設計.ppt_第1頁](http://file1.renrendoc.com/fileroot2/2020-1/20/7335c8e2-6a62-412d-871b-a0dfd6a11002/7335c8e2-6a62-412d-871b-a0dfd6a110021.gif)
![第4章 簡單程序設計.ppt_第2頁](http://file1.renrendoc.com/fileroot2/2020-1/20/7335c8e2-6a62-412d-871b-a0dfd6a11002/7335c8e2-6a62-412d-871b-a0dfd6a110022.gif)
![第4章 簡單程序設計.ppt_第3頁](http://file1.renrendoc.com/fileroot2/2020-1/20/7335c8e2-6a62-412d-871b-a0dfd6a11002/7335c8e2-6a62-412d-871b-a0dfd6a110023.gif)
![第4章 簡單程序設計.ppt_第4頁](http://file1.renrendoc.com/fileroot2/2020-1/20/7335c8e2-6a62-412d-871b-a0dfd6a11002/7335c8e2-6a62-412d-871b-a0dfd6a110024.gif)
![第4章 簡單程序設計.ppt_第5頁](http://file1.renrendoc.com/fileroot2/2020-1/20/7335c8e2-6a62-412d-871b-a0dfd6a11002/7335c8e2-6a62-412d-871b-a0dfd6a110025.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Page 1,第4章 程序控制結構,4.1 C語言的執(zhí)行語句 4.2 順序結構 4.3 選擇結構 4.4 循環(huán)結構,Page 2,4.1 C語言的執(zhí)行語句,C程序組成,Page 3,4.1 C語言的執(zhí)行語句,C語句的分類: 表達式語句 空語句 復合語句 控制語句,Page 4,表達式語句,賦值語句:變量 = 表達式 ; 功能:將“=”右側表達式的值賦給左側變量的值。 函數(shù)調用語句; 例如 putchar(ch);,Page 5,空語句和復合語句,空語句:僅由一個分號構成的語句,在執(zhí)行時不產生任何指令。 復合語句:用一對花括號 將多個語句括起來構成一個整體。 注意: 1)復合語句中的每個語句必須
2、以分號;結束但右花括號后不能有分號 2)復合語句中可以有自己的數(shù)據(jù)說明,Page 6,控制語句,條件選擇語句:if 開關分支語句:switch 當循環(huán)語句:while 直到循環(huán)語句:do while 計數(shù)循環(huán)語句:for 中止本次循環(huán)語句:continue 中止整個循環(huán)語句:break 函數(shù)返回語句:return 無條件轉移語句:goto,Page 7,順序結構,順序結構程序:由兩個或兩個以上的語句組成,先執(zhí)行 A 操作,然后再執(zhí)行 B 操作。 傳統(tǒng)流程圖 N-S流程圖,Page 8,順序結構程序設計舉例,例4.1 輸入任意兩個整數(shù),求它們的和及平均值。要求平均值取兩位小數(shù)輸出。 #inclu
3、de void main() int num1,num2; float sum,aver; printf(Please input two integers: n); scanf(%d,%d,Page 9,順序結構程序設計舉例,例4.2 給定一個三位正整數(shù),分別輸出它的個位數(shù)、十位數(shù)和百位數(shù)。 #include void main() int m,m0,m1,m2; printf(Input a number(100999): ); scanf(%d,Page 10,順序結構程序設計舉例,例4.4 求方程ax2+bx+c=0的根。a、b、c由鍵盤輸入,a0且b2-4ac0。 #include
4、#include void main() float a,b,c,d,x1,x2; printf(Input a,b,c: ); scanf(%f,%f,%f,Page 11,4.3 選擇結構,C語言的選擇控制結構語句有: if語句和switch語句 if 語句是用來判斷所給定的條件是否滿足,根據(jù)判定的結果(真或假)決定執(zhí)行給定的某種操作之一。,Page 12,if 語句的形式1單分支結構,格式: if (表達式) 語句 執(zhí)行過程:,Page 13,if語句舉例1,例 輸入兩個實數(shù),按升序輸出兩個實數(shù)。 解法一: #include void main( ) float a,b; scanf(%
5、f%f, ,單邊條件(條件判斷兩次),Page 14,if 語句的形式2雙分支結構,格式: if (表達式) 語句1 else 語句2 執(zhí)行過程:,Page 15,if語句舉例1,例 輸入兩個實數(shù),按升序輸出兩個實數(shù)。 解法二: #include void main ( ) float a,b; scanf(%f%f, ,雙邊條件(條件判斷一次),Page 16,if語句舉例1,解法三: #include void main( ) float a,b,t; scanf(%f%f, ,單邊條件(條件判斷一次),3個語句用花括號括起來構成1個復合語句,若不使用復合語句,則可用t=a, a=b, b
6、=t;,Page 17,if 語句的形式3多分支結構,格式: if (表達式1) 語句1 else if (表達式2) 語句2 else if (表達式3) 語句3 : : else if (表達式n) 語句n else 語句n+1,入口,出口,Page 18,if語句舉例2,例 根據(jù)所輸入的x之值,求 解法一:用多分支if 語句 #include void main ( ) int x,y; scanf(%d, ,1 (x0) y= 0 (x=0) -1 (x0),Page 19,if語句舉例2,解法二:用多個單分支if 語句 #include void main ( ) int x,y;
7、scanf(%d, ,Page 20,if語句舉例2,解法三:用雙分支if 語句的嵌套 #include void main ( ) int x,y; scanf(%d, ,這是一個嵌套結構,Page 21,if 語句的嵌套,在if 語句中又包含一個或多個if 語句,稱為if 語句的嵌套 一般形式: if (條件1 ) if (條件2 ) 語句1 else 語句2 else if (條件3) 語句3 else 語句4 if 與 else 的配對關系:從最內層開始, else 總是與它上面最近的且尚未配對的 if 配對。,為了使邏輯關系清晰,建議采用“分層縮進書寫格式”。,Page 22,在內嵌
8、if語句中要注意配對關系,結合右圖,觀察以下程序: #include void main ( ) int x,y; scanf(%d, 輸入 0 輸出結果:x=0,y= -1,真正的配對,結果錯誤,Page 23,在內嵌if語句中要注意配對關系,在內嵌if語句中加花括號改變配對關系 #include void main ( ) int x,y; scanf(%d, 結論:如果內層if 語句為單邊結構,要加花括號,花括號改變配對關系,結果正確,正確配對,Page 24,條件運算符的應用,例:輸入一個字符,判斷它是否大寫字母,若是將其轉換為小寫;否則原樣輸出。 #include void main
9、( ) char ch ; scanf(%c, printf (%cn,ch) ,Page 25,switch 語句(多分支選擇語句,開關語句),switch 語句的格式: switch (表達式) case 常量表達式1 : 語句1; break; case 常量表達式2 : 語句2; break; case 常量表達式3 : 語句3; break; case 常量表達式n : 語句n;break; default : 語句n+1 執(zhí)行過程: 先計算switch后面表達式的值,如果與某個case后的常量值相等,則執(zhí)行其后的語句;若所有case中的常量值都不能與之匹配,則執(zhí)行default后的
10、語句n+1。,根據(jù)此表達式的值找入口,一般為常量,TC要求為int或char型,Page 26,switch 語句流程圖(無break語句),注意: 執(zhí)行完入口語句后,則自動轉到下一個case后面的語句執(zhí)行;,Page 27,switch 語句流程圖(有break語句),注意: 如果語句中有break;,則執(zhí)行完一個入口語句后跳出switch選擇結構。,Page 28,switch語句舉例,例:輸入成績等級,打印出百分制分數(shù)段。 #include void main( ) char c; printf(Please enter a charn); c=getchar( ); c=(c=a ,注
11、意:case后面應為字符常量A、B等,不能為變量A、B等。,Page 29,switch語句舉例(無break語句的效果),例4.9:輸入成績等級,打印出百分制分數(shù)段。 #include void main( ) char c; printf(Please enter a charn); c=getchar( ); c=(c=a ,去掉break語句,程序運行后,從鍵盤上輸入b,則程序運行的順序和結果如下:,8089 7079 6069 60 error,Page 30,switch 語句使用說明,各個分支中如果沒有break語句,則執(zhí)行了相應的操作后,會自動轉到下一個case后面的語句執(zhí)行。
12、 case后面的常量值不能相同。 各個分支中允許有多個語句,可以不用 括起來。 各個case和default分支的順序可以改變,但default總是最后考慮的入口。如果各個分支中均有break語句,各個分支的出現(xiàn)次序不影響執(zhí)行結果。 可以使多個case共用同一組執(zhí)行語句。,Page 31,例4.10 輸入百分制成績,要求輸出相應的五級制成績。百分制成績與五級制成績之間的轉換標準為:90分以上為“A”,80-89分為“B”,70-79分為“C”,60-69分為“D”,60分以下為“E”。 #include void main ( ) int score; scanf(%d, ,switch 語句
13、舉例,Page 32,上題也可用多分支if語句實現(xiàn),見課本P71例4.7。 #include void main ( ) int score; scanf(%d, ,Page 33,選擇結構程序設計舉例,判斷字母、數(shù)字 分段函數(shù)值的計算 三個數(shù)中求最大數(shù) 求三角形面積 判斷閏年 計算器程序 求一元二次方程的根 對三個數(shù)進行升序排序,Page 34,例1:從鍵盤上輸入一個字符判斷是數(shù)字、字母或其它字符。課本P81 例4.13 #include void main( ) char c; c=getchar( ) ; if ( c=A ,Page 35,例2:計算分段函數(shù)。課本P73 例4.8 #i
14、nclude void main ( ) float x,y; scanf(%f, ,Page 36,例3: 從三個數(shù)中找出最大的數(shù)。 思路一: 先將a、b進行比較,將二者之中的大數(shù)放入變量a中,小數(shù)放入b中,這樣a中就是a、b中的大數(shù); 再將變量a與變量c進行比較,將a,c中的大數(shù)放到a中,小數(shù)放到c中,這樣,變量a中存放的就一定是三個數(shù)中的最大數(shù)。 思路二: 先假設a為最大數(shù)max; 將b與max進行比較,若bmax,則max改為b; 將c與max進行比較,若cmax,則max改為c. 于是變量max中存放的就是三個數(shù)中的最大數(shù)。,Page 37,解1) #include void mai
15、n( ) int a,b,c,t; scanf(%d,%d,%d, ,解2) #include void main( ) int a,b,c,max; scanf(%d,%d,%d, ,Page 38,例:對三個數(shù)進行升序排序 思路: 1.先將a、b進行比較,將二者之中的較小者放入變量a中,較大者放入b中,這樣a中就是a、b中較小數(shù); 2.再將變量a與變量c進行比較,將a、c中的較小者放到a中,較大者放到c中,這樣,變量a中存放的就一定是三個數(shù)中的最小數(shù); 3.最后將b和c進行比較,將二者之中較小者放入變量b中,較大者放入變量c中,就完成了對三個數(shù)的升序排序。 也就是說,對三個數(shù)進行排序,需要
16、進行3次比較。,Page 39,#include void main( ) int a,b,c,t; scanf(%d,%d,%d, ,Page 40,例4 輸入三角形三邊長,求三角形面積。課本P82 例4.14 #include #include void main() float a,b,c,s,area; scanf(%f,%f,%f, ,Page 41,例5:判斷閏年算法,閏年的條件:能被4整除,但不能被100整除;能被100整除,又能被400整除。,否,輸出year不是閏年,是,輸出year是閏年,輸出year不是閏年,輸出year是閏年,是,是,否,否,Page 42,解1)用多邊
17、if語句實現(xiàn) #include void main() int year; scanf(%d, ,Page 43,解2)多邊if語句+用變量leap標識是否閏年 #include void main( ) int year,leap; scanf(%d, ,Page 44,解3)直接用復合條件判斷閏年 #include void main( ) int year,leap; scanf(%d, ,Page 45,例6 計算器程序。用戶輸入運算數(shù)和四則運算符,輸出運算結果。當輸入運算符不是“+”、“-”、“*”或“/”時提示出錯,當輸入除數(shù)為0時也提示出錯。課本P80 例4.12 #includ
18、e #include void main() float a,b; char c; scanf(%f%c%f, ,Page 46,例7 求一元二次方程的根算法。課本P85 例4.17,Page 47,#include void main( ) float a,b,c,disc,x1,x2,real,imag; scanf(%f,%f,%f, ,表示a等于0,表示disc等于0,注意a= =0 這種表示不夠準確!,Page 48,4.4 循環(huán)結構,C語言的循環(huán)結構共有下列三種: while 語句 do-while 語句 for 語句,Page 49,4.4 循環(huán)結構,舉例 求1100之間所有整數(shù)
19、的和,當型循環(huán),直到型循環(huán),Page 50,while 語句,格式: while (表達式) 語句,注:循環(huán)體可能一次也不執(zhí)行。,Page 51,while 語句,例4.18 用while語句求1100之間整數(shù)和 #include void main( ) int i,sum; sum=0; i=1; while( i=100) sum=sum+i; i+; printf(i=%d,sum=%dn,i,sum); ,語句sum=sum+i;和語句i+;能否改變位置?程序的哪些地方應作相應的改動?,如果在while語句之前對變量sum賦初值為1,是否可以?程序的哪些地方應作相應的改動?,循環(huán),P
20、age 52,while 語句,例4.19 根據(jù)公式計算圓周率的值。 部分程序: int i=1,n; double pi=0; scanf(%d,Page 53,do-while 語句,格式:do 語句 while (表達式) ;,注:循環(huán)體至少執(zhí)行一次。,用do-while語句實現(xiàn)直到循環(huán),Page 54,do-while 語句,例4.18 用do-while語句求100以內正整數(shù)的和 #include void main( ) int i,sum; sum=0; i=1; do sum=sum+i; i+; while( i=100 ); printf(i=%d,sum=%dn,i,su
21、m); ,循環(huán),分號不可缺少,Page 55,do-while 語句,例4.22 利用公式:求,直到最后一項的值小于10-6。 int s; float n,t,pi; pi=0; t=1; /*序列的第一項*/ n=1.0; /*分母從1開始*/ s=1; /*變量s表示符號*/ do pi=pi+t; n=n+2; /*分母每循環(huán)一次增加2*/ s=-s; /*單項的正負號交替變化*/ t=s/n; /*下一項的值*/ while(fabs(t)1e-6); pi=pi*4; printf(pi=%10.6fn,pi);,Page 56,for 語句,格式: for (表達式1;表達式2;
22、表達式3) 語句,實質是當型循環(huán)!,Page 57,for 語句,在for語句中,通常表達式1用來為循環(huán)變量賦初值;表達式2一般用來設置循環(huán)條件;表達式3一般用于循環(huán)變量增值。 for 語句的最常用格式: for (循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值) 語句,Page 58,for 語句,例4.18 用for語句求1100之間的整數(shù)之和 #include void main( ) int i,sum; sum=0; for ( i=1; i=100; i+ ) sum=sum+i; printf(i=%d,sum=%dn,i,sum); ,Page 59,for 語句,例4.26 統(tǒng)計從鍵
23、盤輸入一行字符的個數(shù),以回車結束。 #include void main() int n; char c; printf(Input a string: n); for(n=0;(c=getchar()!=n;n+); printf(%d,n); ,Page 60,for 語句,例4.27 編程輸出“斐波那契數(shù)列”的前20項。 #include void main() int i,x1=1,x2=1; for(i=1;i=10;i+) printf(%10d %10d ,x1,x2); if(i%2=0) printf(n); x1=x1+x2; x2=x2+x1; ,Page 61,for
24、語句的靈活使用,循環(huán)之前的賦初值語句可以放在表達式1中,中間用逗號間隔。 表達式3可缺省(但其前的分號不能省略),將表達式3作為語句放到循環(huán)體的末尾。 循環(huán)體中的內容可以放在表達式3中,但要在for語句圓括號的后面加一個分號。 表達式1、表達式3可同時缺省,但表達式2前后的分號都不能省略。,Page 62,for 語句的靈活使用,表達式2可缺省,放在循環(huán)體之中,但for語句中的兩個分號都不能省略;且判斷與退出放在循環(huán)體中。 int i,sum; sum=0; for ( i=1; ; i+) if ( i=100 ) sum=sum+i; else break; /*退出循環(huán)*/ printf
25、(i=%d,sum=%dn,i,sum); ,Page 63,幾種循環(huán)的比較,1)while循環(huán)、do while循環(huán)、for循環(huán)都可以用來處理同一個問題,一般可以互相代替。 2)在while和do-while循環(huán)的循環(huán)體中,應包括使循環(huán)趨于結束的語句。 3)用while和do-while循環(huán)時,循環(huán)變量初始化的操作應在while和do-while語句之前完成,而for語句可以在表達式1中實現(xiàn)循環(huán)變量的初始化。 4)三種循環(huán)均可用break語句跳出循環(huán),用continue語句結束本輪循環(huán)。 5)for語句功能最強。,Page 64,break語句和continue語句,break 語句 格式:
26、 break; 功能: 提前結束循環(huán),從循環(huán)體中無條件跳轉到循環(huán)語句后面執(zhí)行。 可用于switch語句和循環(huán)結構中。 continue語句 格式: continue; 功能: 結束本次循環(huán),即在本次循環(huán)中,不再執(zhí)行循環(huán)體中continue后面的語句。 只能用于循環(huán)結構。,Page 65,break語句的使用,例4.28 將數(shù)字512表示成兩個數(shù)的和,這兩個數(shù)分別為15和13的倍數(shù)。 #include void main() int i; for(i=1;i+) if(!(512-i*15)%13) break; printf(%d+%d=512n,i*15,512-i*15); ,!(512-
27、i*15)%13) 等價于 (512-i*15)%13=0,Page 66,continue語句的使用,例4.29 輸出100200之間所有能夠被7或9整除的數(shù)。 #include void main( ) int i,n=0; for(i=100;i=200;i+) if(i%7!=0) /*當n被5整除時換行,即一行輸出5個數(shù)*/ ,Page 67,break與continue的區(qū)別,分析以下兩個程序,程序一: #include void main() int i; for(i=1;i=10;i+) if (i%3=0) continue; printf(%3d,i); printf (n
28、); 結果輸出 1 2 4 5 7 8 10,Page 68,break與continue的區(qū)別,程序二: #include void main() int i; for(i=1;i=10;i+) if (i%3=0) break; printf(%3d,i); printf (n); 結果輸出 1 2,Page 69,判斷一個數(shù)是否為素數(shù),例 判斷整數(shù)m是否為素數(shù) 素數(shù)即為質數(shù),如果一個整數(shù)只能被1或者它本身整除,這個數(shù)就稱為是素數(shù)。 判斷素數(shù)的思路是:讓m被2sqrt(m)之間所有的整數(shù)整除,如果m能被2sqrt(m)之中的任何一個整數(shù)整除,則m一定不是素數(shù);如果在2sqrt(m)之間不存
29、在能被m整除的整數(shù),則m是素數(shù)。,Page 70,判斷整數(shù)m是否為素數(shù)算法N-S圖,或者i=k+1,循環(huán)結束后根據(jù) i的值來決定m是否為素數(shù),Page 71,#include #include void main( ) int m,i,k; scanf(%d, ,for 語句有兩個出口:i=k+1 和 break 不是結構化程序!,判斷整數(shù)m是否為素數(shù)程序1,Page 72,判斷整數(shù)m是否為素數(shù)程序2,#include #include void main( ) int m,i,k; scanf(%d, ,for 語句只有一個出口: ik| m%i=0 是結構化程序,Page 73,循環(huán)嵌套,
30、一個循環(huán)體中又包含了另一個完整的循環(huán)結構,叫做循環(huán)的嵌套。 三種循環(huán)結構可以互相嵌套。 循環(huán)嵌套的執(zhí)行過程是:外循環(huán)執(zhí)行一次,內循環(huán)執(zhí)行一個全過程。,Page 74,舉例:輸出一個圖形,* * * *,/*外循環(huán)控制輸出圖形的行數(shù) */,#include void main( ) int i, j; for( i=1 ; i=4 ; i+ ) for( j=1; j=i ; j+ ) printf(*); printf(n); ,Page 75,舉例:輸出一個圖形,/*外循環(huán)控制輸出的行數(shù) */,#include void main( ) int i, j, k; for( i=1 ; i=4
31、 ; i+ ) for( j=1; j=i ; j+ ) printf( ); for( k=1; k=3; k+) printf(*); printf(n); ,* * * *,Page 76,舉例:輸出一個圖形,#include void main( ) int i, j, k; for( i=1 ; i=4 ; i+ ) for( j=1; j=4-i ; j+ ) printf( ); for( k=1; k=2*i-1; k+) printf(*); printf(n); ,* * * *,Page 77,舉例,例4.31 計算s=1!+2!+3!+ +10! 解1: #includ
32、e void main( ) int i,n; float s,t; s=0; t=1; for ( i=1; i=10; i+) t=t*i; s+=t; printf (”s=%.0fn”,s); ,t=1; for (j=1;j=i;j+) t=t*j;,解2:用雙重循環(huán)實現(xiàn) 外循環(huán)計算累加 內循環(huán)求i!,Page 78,循環(huán)結構程序設計舉例,舉例:累加、連乘算法 統(tǒng)計個數(shù) 數(shù)的分離 窮舉法 判斷一個數(shù)是否為素數(shù) 輾轉相除法求最大公約數(shù) 方程求根 求定積分,Page 79,舉例:累加、連乘算法,從鍵盤上輸入10個整數(shù),求總和及平均值,解1: #include void main( ) i
33、nt x, i; float sum=0, aver; for ( i=1;i=10; i+) scanf(%d, ,Page 80,舉例:累加、連乘算法,解2: #include #define N 10 /*數(shù)的個數(shù)用符號常量表示*/ void main( ) int x, i; float sum=0, aver; for ( i=1; ; i+) scanf(%d, ,i=N,N,Page 81,舉例:累加、連乘算法,從鍵盤上輸入n個整數(shù),求總和及平均值,n由鍵盤輸入 #include void main( ) int x, i, n; float sum=0, aver; for (
34、 i=1; ; i+) scanf(%d,scanf(%d,i=n,n,Page 82,舉例:累加、連乘算法,從鍵盤上輸入若干個整數(shù),求總和及平均值,輸入-1結束 #include void main( ) int x, i=0; float sum=0, aver; while ( ) sum+=x; i+; if (i0) aver=sum/i ; printf(sum=% .0f,aver=%.2fn,sum,aver); ,scanf(%d,scanf(%d, ,或 for (; x!=-1;),x!=-1,若i=0說明沒有輸入,無需進行操作,Page 83,舉例:累加、連乘算法,求若
35、干個整數(shù)的總和,要求總和不大于1000 #include void main( ) int x,sum=0; while(sum=1000) scanf(%d, ,sum-x,Page 84,舉例:累加、連乘算法,例4.35 計算多項式的值。 float sum,term,x; int n,k,sign; scanf(%d,%f,Page 85,舉例,例4.21猴子吃桃問題:猴子摘下了一堆桃子,第一天吃總數(shù)的一半多一個,第二天吃剩下的一半多一個,以后每天都吃前一天剩下的一半多一個,到第十天想再吃時剩一個,求第一天共有多少個桃子? #include void main( ) int k,x; k
36、=1; x=1; while(k=9) x=(x+1)*2; k+; printf(Total number=%dn,x); ,Page 86,遞推法總結,以上的算法采用了遞推的方法,即在一個數(shù)的序列中,后一項值是前一項或前幾項的基礎上推算出來的。 使用該方法的兩個注意事項: 1)確定初始條件或邊界條件; 2)找出遞推公式。 典型的例子包括求斐波那契數(shù)列,牛頓迭代法求方程的根等,Page 87,統(tǒng)計個數(shù),例4.38 輸入十個數(shù),求出最小數(shù)和奇數(shù)、偶數(shù)個數(shù)。 int i, min,odd=0,eve=0,x; for(i=1;i=10;i+) printf(Please input intege
37、r %d:,i); scanf(%d,Page 88,數(shù)的分離,例4.33 輸入132767之間的整數(shù),把這個整數(shù)顯示為一系列數(shù)字,每組數(shù)字都是用兩個空格分開。例如,整數(shù)1234應該顯示為:1 2 3 4。 int i,num,counter,temp; counter=1; printf(Enter an integer: n); scanf(%d, ,Page 89,數(shù)的分離,續(xù)上頁 while(counter) temp=1; for(i=1;i=counter-1;i+) temp*=10; printf(%3d,num/temp); num%=temp; counter-; prin
38、tf(n); ,Page 90,數(shù)的分離,求出水仙花數(shù),水仙花數(shù)是指一個3位數(shù)的個位數(shù)、十位數(shù)、百位數(shù)之和正好等于該數(shù)本身。,i =a3+b3+c3,Page 91,數(shù)的分離,void main() int i,a,b,c; for(i=100;i=999;i+) c=i%10; /*取出個位數(shù)*/ a=i/100; /*取出百位數(shù)*/ b=i/10%10; /*取出十位數(shù)*/ if(i=a*a*a+b*b*b+c*c*c) printf(“%dt”,i); ,Page 92,用窮舉法解決問題,百錢買百雞問題(出自算經(jīng),古代數(shù)學家張丘建):雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買
39、百雞,問雞翁、母、雛各幾何。 變量cocks: 存放雞翁數(shù)量,取值020 變量hens: 存放雞母數(shù)量,取值033 變量chicks:存放雞雛數(shù)量,取值0100 有下列方程: cocks+hens+chicks=100 5*cocks+3*hens+chicks/3=100,Page 93,百錢買百雞問題N-S圖,Page 94,百錢買百雞問題的程序1,#include void main( ) int cocks,hens,chicks; for (cocks=0 ; cocks=20 ; cocks+ ) for (hens=0 ; hens=33 ;hens+ ) for (chicks=0 ; chicks=100 ; chicks+=3 ) if (cocks+hens+chicks =100 ,Page 95,百錢買百雞問題的程序2,僅用兩重循環(huán)實現(xiàn): #include void main( ) int cocks,hens,chicks; for (cocks=0 ; cocks=20 ; cocks+ ) for (hens=0 ; hens=33 ;hens+ )
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版七年級數(shù)學下冊8.2.1.2《代入消元法(2)》聽評課記錄
- 新版華東師大版八年級數(shù)學下冊《18平行四邊形》聽評課記錄30
- 珍稀郵票贈與合同(2篇)
- 生物識別技術開發(fā)合同(2篇)
- 蘇人版道德與法治九年級上冊2.1《參與公共生活》聽課評課記錄
- 《青銅器與甲骨文》聽課評課記錄2(新部編人教版七年級上冊歷史)
- 晉教版地理七年級下冊《9.1 東南亞──兩洲兩洋的“十字路口”》聽課評課記錄2
- 蘇科版數(shù)學七年級上冊第四章 一元一次方程-應用教聽評課記錄
- 湘教版數(shù)學八年級下冊2.2.2《平行四邊形的判定定理》聽評課記錄2
- 湘教版九年級數(shù)學上冊第1章反比例函數(shù)1.3反比例函數(shù)的應用聽評課記錄
- 5《這些事我來做》(說課稿)-部編版道德與法治四年級上冊
- 2025年度高端商務車輛聘用司機勞動合同模板(專業(yè)版)4篇
- 2025年福建福州市倉山區(qū)國有投資發(fā)展集團有限公司招聘筆試參考題庫附帶答案詳解
- 2025年人教版新教材數(shù)學一年級下冊教學計劃(含進度表)
- GB/T 45107-2024表土剝離及其再利用技術要求
- 2025長江航道工程局招聘101人歷年高頻重點提升(共500題)附帶答案詳解
- 2025年黑龍江哈爾濱市面向社會招聘社區(qū)工作者1598人歷年高頻重點提升(共500題)附帶答案詳解
- 2025年國新國際投資有限公司招聘筆試參考題庫含答案解析
- 2025年八省聯(lián)考四川高考生物試卷真題答案詳解(精校打印)
- 《供電營業(yè)規(guī)則》
- 執(zhí)行總經(jīng)理崗位職責
評論
0/150
提交評論