} else {
next=getchar(); palin(n-1); putchar(next); } }
============================================================== 【程序28】
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第 3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 问第一个人,他说是10岁。请问第五个人多大?
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道 第四人的岁数,依次类推,推到第一人(10岁),再往回推。 2.程序源代码: age(n) return(c); int n; } { main() int c; { printf(\if(n==1) c=10; } else c=age(n-1)+2;
============================================================== 【程序29】
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供) 2.程序源代码: main( ) {
long a,b,c,d,e,x; scanf(\
a=x/10000;/*分解出万位*/
b=x000/1000;/*分解出千位*/ c=x00/100;/*分解出百位*/ d=x0/10;/*分解出十位*/ e=x;/*分解出个位*/
if (a!=0) printf(\else if (b!=0) printf(\ else if (c!=0) printf(\ else if (d!=0) printf(\ else if (e!=0) printf(\}
============================================================== 【程序30】
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 1.程序分析:同29例 2.程序源代码: main( ) {
21
long ge,shi,qian,wan,x; scanf(\wan=x/10000;
qian=x000/1000; shi=x0/10; ge=x;
if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/ printf(\else
printf(\}
【程序31】
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
2.程序源代码: #include void main() {
char letter;
printf(\while ((letter=getch())!='y')/*当所按字母为y时才结束*/ { switch (letter)
{case 's':printf(\ if((letter=getch())=='a') printf(\
else if ((letter=getch())=='u') printf(\
else printf(\ break;
case 'f':printf(\case 'm':printf(\
case 't':printf(\ if((letter=getch())=='u') printf(\
else if ((letter=getch())=='h') printf(\ else printf(\ break;
case 'w':printf(\default: printf(\ } } }
============================================================== 【程序32】
题目:press any key to change color, do you want to try it. please hurry up! 1.程序分析:
22
2.程序源代码: #include
void main(void) {
int color;
for (color = 0; color < 8; color++) {
textbackground(color);/*设置文本的背景颜色*/ cprintf(\ cprintf(\ getch();/*输入字符看不见*/ } }
============================================================== 【程序33】
题目:学习gotoxy()与clrscr()函数 1.程序分析: 2.程序源代码: #include
void main(void) {
clrscr();/*清屏函数*/ textbackground(2);
gotoxy(1, 5);/*定位函数*/
cprintf(\textbackground(3); gotoxy(20, 10);
cprintf(\}
23
============================================================== 【程序34】
题目:练习函数调用 1. 程序分析: 2.程序源代码: #include
void hello_world(void) {
printf(\}
void three_hellos(void) {
int counter;
for (counter = 1; counter <= 3; counter++) hello_world();/*调用此函数*/ }
void main(void) {
three_hellos();/*调用此函数*/ }
============================================================== 【程序35】
题目:文本颜色设置 1.程序分析: 2.程序源代码: #include void main(void) {
int color;
for (color = 1; color < 16; color++) {
textcolor(color);/*设置文本颜色*/ cprintf(\ }
textcolor(128 + 15);
cprintf(\}
============================================================== 【程序36】
题目:求100之内的素数 1.程序分析: 2.程序源代码: #include
#include \
24
#define n 101 main() {
int i,j,line,a[n];
for(i=2;ifor(i=2;i for(j=i+1;j { if(a[i]!=0&&a[j]!=0) if(a[j]%a[i]==0) a[j]=0;} printf(\for(i=2,line=0;i{ if(a[i]!=0)
{printf(\ line++;} if(line==10) {printf(\line=0;} } }
============================================================== 【程序37】
题目:对10个数进行排序
1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换, 下次类推,即用第二个元素与后8个进行比较,并进行交换。 2.程序源代码: #define n 10 main()
{int i,j,min,tem,a[n]; /*input data*/
printf(\for(i=0;i{
printf(\scanf(\printf(\
for(i=0;iprintf(\printf(\/*sort ten num*/ for(i=0;i{min=i;
for(j=i+1;jif(a[min]>a[j]) min=j; tem=a[i]; a[i]=a[min]; a[min]=tem; }
/*output data*/
printf(\
25