资源描述:
《教学拓展C语言经典编程案例.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言经典编程案例一、猴子吃桃问题猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。程序分析:采取逆向思维的方法,从后往前推断。第一天的桃子数是第2天桃子数加1后的2倍。程序源代码:main(){intday,fir,sec;day=9;sec=1;while(day>0) {fir=(sec+1)*2; sec=fir; day--; }p
2、rintf("thetotalis%d",fir);}二、回文数字问题给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。程序分析:分解出每个位上的数字。程序源代码:main(){longmil,thou,hun,ten,a,x;scanf("%d",&x);mil=x/10000;thou=x%10000/1000;hun=x%1000/100;ten=x%100/10;a=x%10;if(mil!=0)printf("thereare5,%d%d%d%d%d",a,ten
3、,hun,thou,mil);elseif(thou!=0)printf("thereare4,%d%d%d%d",a,ten,hun,thou); elseif(hun!=0)printf("thereare3,%d%d%d",a,ten,hun); elseif(ten!=0)printf("thereare2,%d%d",a,ten); elseif(e!=0)printf("thereare1,%d",a);}三、杨辉三角打印出杨辉三角形(要求打印出10行)。程序
4、分析: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 程序源代码:main(){inti,j;inta[10][10];printf("");for(i=0;i<10;i++) {a[i][0]=1; a[i][i]=1;}for(i=2;i<10;i++) for(j=1;j
5、;j<=i;j++) printf("%5d",a[i][j]); printf(""); }}四、打印水仙花数打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。程序源代码:main(){inti,j,k,n;printf("'waterflower'numberis:"); for(n=100;n<1000
6、;n++) { i=n/100; j=n/10%10; k=n%10; if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) { printf("%-5d",n); } }printf("");}五、最大公约数和最小公倍数输入两个正整数m和n,求其最大公约数和最小公倍数。程序分析:利用辗除法。程序源代码:main(){ inta,b,num1,num2,temp; printf("pleaseinputtwonumbers:"); scanf("%d,%d",
7、&num1,&num2); if(num1 {temp=num1; num1=num2; num2=temp; }a=num1;b=num2;while(b!=0)/*利用辗除法,直到b为0为止*/ { temp=a%b; a=b; b=temp; }printf("gongyueshu:%d",a);printf("gongbeishu:%d",num1*num2/a);}