c分支和循環(huán)案例分析_第1頁(yè)
c分支和循環(huán)案例分析_第2頁(yè)
c分支和循環(huán)案例分析_第3頁(yè)
c分支和循環(huán)案例分析_第4頁(yè)
c分支和循環(huán)案例分析_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、分支案例分析案例分析分支程序設(shè)計(jì) 簡(jiǎn)單分支簡(jiǎn)單分支 雙分支雙分支 多分支多分支簡(jiǎn)單分支程序設(shè)計(jì) 求絕對(duì)值求絕對(duì)值 顯示三個(gè)數(shù)中的奇數(shù)顯示三個(gè)數(shù)中的奇數(shù) 三數(shù)中取極值三數(shù)中取極值main()int x,y;printf(“請(qǐng)輸入一個(gè)數(shù)請(qǐng)輸入一個(gè)數(shù)n”);scanf(“%d”,&x);y=x;if (xmax) max=b; if(cmax); max=c; printf(The max number is%dn,max); 雙分支程序設(shè)計(jì) 兩數(shù)的比較兩數(shù)的比較 判斷一數(shù)能否被另一數(shù)整除判斷一數(shù)能否被另一數(shù)整除兩數(shù)的比較兩數(shù)的比較main() int x,y; printf (please

2、 input x,y.n); scanf (%d%d,&x,&y); if(xy) printf(The max number is%dn,x); else printf(The max number is%dn,y); 判斷一數(shù)能否判斷一數(shù)能否被另一數(shù)整除被另一數(shù)整除main() int x,y; printf (please input x,y.n); scanf (%d%d,&x,&y); if(x%y) printf(“No); else printf(“Yes”); 多分支程序設(shè)計(jì) 分段函數(shù)求解分段函數(shù)求解 一元二次方程求解一元二次方程求解 顯示學(xué)生成

3、績(jī)與等級(jí)顯示學(xué)生成績(jī)與等級(jí)分段函數(shù)求解分段函數(shù)求解main() int y; float x; printf(“ input x:n”); scanf(“%f”,&x); switch(x=0 x2=sqrt(d)/2a輸出x1x2x2=sqrt(-d)/2a輸出x1x2i結(jié) 束YesNoYesNo#include “math.h”main()float a,b,c,a2,x1,x2;printf(“輸入系數(shù)輸入系數(shù)a,b,cn”);scanf(“%f%f%f”,&a,&b,&c);if(a=0) printf(“root=%fn”,x1=-c/b);else

4、d=b*b-4*a*c; a2=2*a; x1=-b/a2; if(d=0) x2=sqrt(d)/a2; printf(“root1=%f,root2=%fn”,x1+x2,x1-x2); else x2=sqrt(-d)/a2; printf(“root1=%f+%fin”,x1,x2); printf(“root1=%f-%fin”,x1,x2 顯示學(xué)生成績(jī)與等級(jí)顯示學(xué)生成績(jī)與等級(jí)main() float score; int num,i=0; printf(please input the total students.n); scanf (%d,&num); printf(p

5、lease input each students score.n); while (i=100)|(score0) printf (error!repeat inputn); continue; switch (int)(score/10) case 10 : c a s e 9 : p r i n t f ( “ % d i s g r a t e A”,score);break; c a s e 8 : p r i n t f ( “ % d i s g r a t e B”,score);break; case 7 : printf(“%d is grate C”,score);bre

6、ak; case 6 : printf(“%d is grate D”,score);break; case 5 :case 4 :case 3 :case 2 :case 1 :case 0 : printf(“%d is fail”,score); i=i+1; 照貓畫虎1.輸入三角形的三條邊輸入三角形的三條邊,若構(gòu)成直角三角形若構(gòu)成直角三角形,則則輸出相應(yīng)信息。輸出相應(yīng)信息。2.一個(gè)一個(gè)5位數(shù)位數(shù),判斷它是不是回文樹判斷它是不是回文樹.即即12321是是回文數(shù)回文數(shù),個(gè)位與萬(wàn)位相同個(gè)位與萬(wàn)位相同,十位與千位相同。十位與千位相同。3.請(qǐng)輸入星期幾的第一個(gè)字母來(lái)判斷是星期請(qǐng)輸入星期幾的第一個(gè)

7、字母來(lái)判斷是星期幾幾,如果第一個(gè)字母一樣如果第一個(gè)字母一樣,則繼續(xù)判斷第二個(gè)則繼續(xù)判斷第二個(gè)字母。字母。c分支和循環(huán)案例分析 1.和積計(jì)算和積計(jì)算 求和求和:s=1*2+2*3+99*100 3.求特定數(shù)判斷一數(shù)能否被另一數(shù)整除求特定數(shù)判斷一數(shù)能否被另一數(shù)整除求從鍵盤任意輸入的兩個(gè)整數(shù)的最大公約數(shù)與最小公倍數(shù)求從鍵盤任意輸入的兩個(gè)整數(shù)的最大公約數(shù)與最小公倍數(shù)水仙花數(shù):三位數(shù)的各位數(shù)字的立方和等于該三位數(shù)即為水水仙花數(shù):三位數(shù)的各位數(shù)字的立方和等于該三位數(shù)即為水仙花數(shù),求出所有水仙花數(shù)。仙花數(shù),求出所有水仙花數(shù)。 2.素?cái)?shù)探求素?cái)?shù)探求 打印輸出打印輸出100200之間的素?cái)?shù)。之間的素?cái)?shù)。 質(zhì)因數(shù)

8、分解:輸入自然數(shù)質(zhì)因數(shù)分解:輸入自然數(shù)n,將其表示為質(zhì)因數(shù)從小到大,將其表示為質(zhì)因數(shù)從小到大順序連乘形式。如:順序連乘形式。如:90=2*3*3*5c分支和循環(huán)案例分析 4.不定方程求解一元二次方程求解不定方程求解一元二次方程求解中國(guó)古代數(shù)學(xué)家張丘建在他的算經(jīng)中提出了著名的“百錢買百雞問(wèn)題”:雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一,百錢買百雞,問(wèn)翁、母、雛各幾何? 5.利用迭代公式求值利用迭代公式求值用迭代法求某個(gè)數(shù)用迭代法求某個(gè)數(shù)a的平方根。的平方根。 已知求平方根的迭代公式為:已知求平方根的迭代公式為:)(21001xaxxc分支和循環(huán)案例分析1.和積計(jì)算求和求和:s=1*2+2*

9、3+99*100main()long I,s;s=0;for (i=1;i=99;i+) s+=i*(i+1);printf(1*2+2*3+99*100 =%ldn,s); 問(wèn)題變通問(wèn)題變通1:求求s= 1*2+2*3+n*(n+1) 2.求和求和:s=1*3+3*5+(2n-1)*(2n+1)累加和:累加和:c分支和循環(huán)案例分析1.和積計(jì)算求求n!=1*2*3*nmain()int I,n;long t;scanf(“%d”,&n);t=1;for (i=1;i=n;i+) t=t*i;printf(“%d!=%ldn,n,t);問(wèn)題變通問(wèn)題變通1:求求s= 1+1/1!+1/2!

10、+1/3!+1/n!問(wèn)題引申問(wèn)題引申:求階乘和數(shù)求階乘和數(shù):一個(gè)正整數(shù)如果等于組成它的各位數(shù)字的一個(gè)正整數(shù)如果等于組成它的各位數(shù)字的階乘之和階乘之和,該正整數(shù)稱為階乘和數(shù)該正整數(shù)稱為階乘和數(shù).階乘計(jì)算:階乘計(jì)算:c分支和循環(huán)案例分析2.素?cái)?shù)探求打印輸出打印輸出100200之間的素?cái)?shù)。之間的素?cái)?shù)。main() int i,j; for(i=100;i=200;i+) for(j=2;ji-1) printf(%5d,i); 探求區(qū)間素?cái)?shù):探求區(qū)間素?cái)?shù):思考:如何改進(jìn)可提高程序的判別效率?思考:如何改進(jìn)可提高程序的判別效率?c分支和循環(huán)案例分析2.素?cái)?shù)探求輸入自然數(shù)輸入自然數(shù)n,將其表示為質(zhì)因數(shù)從

11、小到大順序連乘形式。,將其表示為質(zhì)因數(shù)從小到大順序連乘形式。如:如:90=2*3*3*5#includemain()long n,k, t;scanf(“%ld”,&n);t=n;for (k=2;k1)printf(“%ld*”,k);continue; if(t=1) printf(“%ldn”,k); if(t1&tn) printf(“%ldn”,t);if(t=n) printf(“%ldn是素?cái)?shù)是素?cái)?shù)”,n);質(zhì)因數(shù)分解:質(zhì)因數(shù)分解:c分支和循環(huán)案例分析3.求特定數(shù)求從鍵盤任意輸入的兩個(gè)整數(shù)的最大公約數(shù)與最小公倍數(shù)求從鍵盤任意輸入的兩個(gè)整數(shù)的最大公約數(shù)與最小公倍數(shù)

12、main() int a,b,temp,k; printf(Input a & b:); scanf(%d%d,&a,&b); k=a*b; if(ab) temp=a;a=b; b=temp; while(b!=0) temp=a%b; a=b; b=temp; printf(“最大公約數(shù)是最大公約數(shù)是: %dn,a); printf(“最小公倍數(shù)是最小公倍數(shù)是:%dn”,k/a);最大公約數(shù)與最小公倍數(shù):最大公約數(shù)與最小公倍數(shù):main() int a,b,t; printf(Input a & b:); scanf(%d%d,&a,&b);

13、 if(a=1;t-) if(a%t=0&b%t=0) break; printf(“最大公約數(shù)是最大公約數(shù)是: %dn,t); printf(“最小公倍數(shù)是最小公倍數(shù)是:%dn”,a*b/t);c分支和循環(huán)案例分析3.求特定數(shù)三位數(shù)的各位數(shù)字的立方和等于該三位數(shù)即為水仙花數(shù),求出所有水仙花數(shù)。三位數(shù)的各位數(shù)字的立方和等于該三位數(shù)即為水仙花數(shù),求出所有水仙花數(shù)。main()int i,a,b,c;for(i=100;i=999;i+) a=i/100; b=(i/10)%10; c=i%10; if(i=a*a*a+b*b*b+c*c*c) printf(%d”,i); 水仙花數(shù):水仙

14、花數(shù):main()int i,j,k,n;for(i=1;i=9;i+) for(j=0;j=9;j+) for(k=0;k=9;k+) n=i*100+j*10+k; if(n=i*i*i+j*j*j+k*k*k) printf(%d”,n); c分支和循環(huán)案例分析1.有有100100克的藥需用天平秤量,現(xiàn)在砝碼只有克的藥需用天平秤量,現(xiàn)在砝碼只有1 1克、克、2 2克和克和5 5克共克共3 3種,問(wèn)要求加的種,問(wèn)要求加的砝碼總數(shù)為砝碼總數(shù)為3030個(gè),有幾種不同的加法?個(gè),有幾種不同的加法? # include main( ) int i,j,k,sum; sum=0; for (i=0;

15、i30;i+) for(j=0;j30-i;j+) k=30-i-j; if (i+2*j+5*k=100) sum=sum+1; printf(one result:%2d,%2d,%2dn,i,j,k); printf(sum=%d,sum); 4.不定方程求解c分支和循環(huán)案例分析1.中國(guó)古代數(shù)學(xué)家張丘建在他的中國(guó)古代數(shù)學(xué)家張丘建在他的算經(jīng)算經(jīng)中提出了著名的中提出了著名的“百錢買百雞問(wèn)百錢買百雞問(wèn)題題”:雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一,百錢買百雞,:雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一,百錢買百雞,問(wèn)翁、母、雛各幾何?問(wèn)翁、母、雛各幾何?題目分析與算法設(shè)計(jì)題目分析

16、與算法設(shè)計(jì) 設(shè)雞翁、雞母、雞雛的個(gè)數(shù)分別為設(shè)雞翁、雞母、雞雛的個(gè)數(shù)分別為x,y,z,題意給定共,題意給定共100錢要買百雞,若錢要買百雞,若全買公雞最多買全買公雞最多買20只,顯然只,顯然x的值在的值在020之間;同理,之間;同理,y的取值范圍在的取值范圍在033之間,可得到下面的不定方程:之間,可得到下面的不定方程: 5x+3y+z/3=100 x+y+z=100 所以此問(wèn)題可歸結(jié)為求這個(gè)不定方程的整數(shù)解。所以此問(wèn)題可歸結(jié)為求這個(gè)不定方程的整數(shù)解。4.不定方程求解c分支和循環(huán)案例分析 #includevoid main() int x,y,z,j=0; printf(“下面程序是百錢買百雞下

17、面程序是百錢買百雞.n); for(x=0;x=20;x+) for(y=0;y=33;y+) for(z=0;y=100;z+) if(z%3=0&x+y+z=100&5*x+3*y+z/3=100) printf(“%2d:公雞公雞=%2d 母雞母雞=%2d 小雞小雞=%2dn,+j,x,y,z); c分支和循環(huán)案例分析 #includevoid main() int x,y,z,j=0; printf(“下面程序是百錢買百雞下面程序是百錢買百雞.n); for(x=0;x=20;x+) for(y=0;y=33;y+) z=100-x-y; if(z%3=0&5*

18、x+3*y+z/3=100) printf(“%2d:公雞公雞=%2d 母雞母雞=%2d 小雞小雞=%2dn,+j,x,y,z); 改進(jìn)程序改進(jìn)程序:c分支和循環(huán)案例分析圖形圖案打印打印n n層用層用“* *”組成的金字塔(如下圖為組成的金字塔(如下圖為5 5層)。層)。 * * * * * main() int n,k,m; printf(“請(qǐng)輸入金字塔的行數(shù)請(qǐng)輸入金字塔的行數(shù).n); scanf(“%d”,&n); for(k=1;k=n;k+) for(m=1;m=50-k;m+) printf(“ “); for(m=1;m=2*k-1;m+) printf(“ *“); pr

19、intf(“n”); c分支和循環(huán)案例分析循環(huán)程序典型例題分析1以下程序的輸出結(jié)果是以下程序的輸出結(jié)果是 。#include main() int i=1,j=1; for (; j5) break; if (j%2!=0) j+=3; continue;j-=1;printf(“%d,%d”,i,j); 1,9c分支和循環(huán)案例分析2以下程序的輸出結(jié)果是以下程序的輸出結(jié)果是#include main() int k=0,m=0; int i,j; for(i=0;i2;i+) for (j=0;j3;j+) k+; k-=j;m=i+j;printf(”k=%d,m=%d”,k,m);Ak=0

20、,m=3 Bk=0,m=5 Ck=1,m=3Dk=1,m=5c分支和循環(huán)案例分析3以下程序的輸出結(jié)果是_。# include main() int i,s=0; for (i=1;i=100;i+) if (i%2=0) continue; s+=i; printf(“s=%dn”,s);2500c分支和循環(huán)案例分析1. 求求s=a+aa+aaa+aaaa+aaaa的值,其中的值,其中a是一個(gè)數(shù)字。例如是一個(gè)數(shù)字。例如2+22+222+2222+22222(此(此時(shí)共有時(shí)共有5個(gè)數(shù)相加),幾個(gè)數(shù)相加由鍵盤控制。個(gè)數(shù)相加),幾個(gè)數(shù)相加由鍵盤控制。2. 求求s=1!+2!+3!+n!編程題c分支和循環(huán)案例分析main()int a,n,count=1;long int sn=0,tn=0;printf(please input a and nn);scanf(%d,%d,&a

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論