c语言编程经典100例(编辑修改稿)内容摘要:

=20。 n++) { t*=n。 s+=t。 } printf(“ 1+2!+3!...+20!=%e\n“ ,s)。 } ============================================================== 【程序 26】 题目:利用递归方法求 5!。 :递归公式: fn=fn_1*4! : include “ “ main() { int i。 int fact()。 for(i=0。 i〈 5。 i++) printf(“ \40:%d!=%d\n“ ,i,fact(i))。 } int fact(j) int j。 { int sum。 if(j==0) sum=1。 else sum=j*fact(j1)。 return sum。 } ============================================================== 【程序 27】 题目:利用递归函数调用方式,将所输入的 5个字符 ,以相反顺序打印出来。 : : include “ “ main() { int i=5。 void palin(int n)。 printf(“ \40:“ )。 palin(i)。 printf(“ \n“ )。 } void palin(n) int n。 { char next。 if(n〈 =1) { next=getchar()。 printf(“ \n\0:“ )。 putchar(next)。 } else { next=getchar()。 palin(n1)。 putchar(next)。 } } ============================================================== 【程序 28】 题目:有 5个人坐在一起,问第五个人多少岁。 他说比第 4个人大 2岁。 问第 4个人岁数,他说比第 3 个人大 2岁。 问第三个人,又说比第 2人大两岁。 问第 2个人,说比第一个人大两岁。 最后 问第一个人,他说是 10 岁。 请问第五个人多大。 :利用递归的方法,递归分为回推和递推两个阶段。 要想知道第五个人岁数 ,需知道 第四人的岁数,依次类推,推到第一人( 10 岁),再往回推。 : age(n) int n。 { int c。 if(n==1) c=10。 else c=age(n1)+2。 return(c)。 } main() { printf(“ %d“ ,age(5))。 } ============================================================== 【程序 29】 题目:给一个不多于 5位的正整数,要求:一、求它是几位数,二、逆序打印出 各位数字。 1. 程序分析:学会分解出每一位数,如下解释: (这里是一种简单的算法,师专数 002 班赵鑫提供 ) : main( ) { long a,b,c,d,e,x。 scanf(“ %ld“ ,amp。 x)。 a=x/10000。 /*分解出万位 */ b=x%10000/1000。 /*分解出千位 */ c=x%1000/100。 /*分解出百位 */ d=x%100/10。 /*分解出十位 */ e=x%10。 /*分解出个位 */ if (a!=0) printf(“ there are 5, %ld %ld %ld %ld %ld\n“ ,e,d,c,b,a)。 else if (b!=0) printf(“ there are 4, %ld %ld %ld %ld\n“ ,e,d,c,b)。 else if (c!=0) printf(“ there are 3,%ld %ld %ld\n“ ,e,d,c)。 else if (d!=0) printf(“ there are 2, %ld %ld\n“ ,e,d)。 else if (e!=0) printf(“ there are 1,%ld\n“ ,e)。 } ============================================================== 【程序 30】 题目:一个 5位数,判断它是不是回文数。 即 12321是回文数,个位与万位相同,十位与千位相同。 :同 29 例 : main( ) { long ge,shi,qian,wan,x。 scanf(“ %ld“ ,amp。 x)。 wan=x/10000。 qian=x%10000/1000。 shi=x%100/10。 ge=x%10。 if (ge==wanamp。 amp。 shi==qian)/*个位等于万位并且十位等于千位 */ printf(“ this number is a huiwen\n“ )。 else printf(“ this number is not a huiwen\n“ )。 } 【程序 31】 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。 :用情况语句比较好,如果第一个字母一样,则判断用情况语句或 if语句判断第二个字母。 : include 〈 〉 void main() { char letter。 printf(“ please input the first letter of someday\n“ )。 while ((letter=getch())!=’ Y’ )/*当所按字母为 Y时才结束 */ { switch (letter) {case ’ S’ :printf(“ please input second letter\n“ )。 if((letter=getch())==’ a’ ) printf(“ saturday\n“ )。 else if ((letter=getch())==’ u’ ) printf(“ sunday\n“ )。 else printf(“ data error\n“ )。 break。 case ’ F’ :printf(“ friday\n“ )。 break。 case ’ M’ :printf(“ monday\n“ )。 break。 case ’ T’ :printf(“ please input second letter\n“ )。 if((letter=getch())==’ u’ ) printf(“ tuesday\n“ )。 else if ((letter=getch())==’ h’ ) printf(“ thursday\n“ )。 else printf(“ data error\n“ )。 break。 case ’ W’ :printf(“ wednesday\n“ )。 break。 default: printf(“ data error\n“ )。 } } } ============================================================== 【程序 32】 题目: Press any key to change color, do you want to try it. Please hurry up! : : include 〈 〉 void main(void) { int color。 for (color = 0。 color 〈 8。 color++) { textbackground(color)。 /*设置文本的背景颜色 */ cprintf(“ This is color %d\r\n“ , color)。 cprintf(“ Press any key to continue\r\n“ )。 getch()。 /*输入字符看不见 */ } } ============================================================== 【程序 33】 题目:学习 gotoxy()与 clrscr()函数 : : include 〈 〉 void main(void) { clrscr()。 /*清屏函数 */ textbackground(2)。 gotoxy(1, 5)。 /*定位函数 */ cprintf(“ Output at row 5 column 1\n“ )。 textbackground(3)。 gotoxy(20, 10)。 cprintf(“ Output at row 10 column 20\n“ )。 } ============================================================== 【程序 34】 题目:练习函数调用 1. 程序分析: : include 〈 〉 void hello_world(void) { printf(“ Hello, world!\n“ )。 } void three_hellos(void) { int counter。 for (counter = 1。 counter 〈 = 3。 counter++) hello_world()。 /*调用此函数 */ } void main(void) { three_hellos()。 /*调用此函数 */ } ============================================================== 【程序 35】 题目:文本颜色设置 : : include 〈 〉 void main(void) { int color。 for (color = 1。 color 〈 16。 color++) { textcolor(color)。 /*设置文本颜色 */ cprintf(“ This is color %d\r\n“ , color)。 } textcolor(128 + 15)。 cprintf(“ This is blinking\r\n“ )。 } ============================================================== 【程序 36】 题目:求 100之内的素数 : : include 〈 〉 include “ “ define N 101 main() { int i,j,line,a[N]。 for(i=2。 i〈 N。 i++) a=i。 for(i=2。 i〈 sqrt(N)。 i++) for(j=i+1。 j〈 N。 j++) { if(a!=0amp。 amp。 a[j]!=0) if(a[j]%a==0) a[j]=0。 } printf(“ \n“ )。 for(i=2,line=0。 i〈 N。 i++) { if(a!=0) {printf(“ %5d“ ,a)。 line++。 } if(line==10) {printf(“ \n“ )。 line=0。 } } } ============================================================== 【程序 37】 题目:对 10个数进行排序 :可以利用选择法,即从后 9个比较过程中,选择一个最小的与第一个元素交换, 下次类推,即用第二个元素与后 8个进行比较,并进行交换。 : define N 10 main() {int i,j,min,tem,a[N]。 /*input data*/ printf(“ please input ten num:\n“ )。 for(i=0。 i〈 N。 i++) { printf(“ a[%d]=“ ,i)。 scanf(“ %d“ ,amp。 a)。 } printf(“ \n“ )。 for(i=0。 i〈 N。 i++) printf(“ %5d“ ,a)。 printf(“ \n“ )。 /*sort ten num*/ for(i=0。 i〈 N1。 i++) {min=i。 for(j=i+1。 j〈 N。 j++) if(a[min]〉 a[j]) min=j。 tem=a。 a=a[min]。 a[min]=tem。 } /*output data*/ printf(“ After sorted \n“ )。 for(i=0。 i〈 N。 i++)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。