a=x/10000; /*分解出万位*/
b=x%10000/1000;/*分解出千位*/
c=x%1000/100; /*分解出百位*/
d=x%100/10; /*分解出十位*/
e=x%10; /*分解出个位*/
if (a!=0)
{printf("这是个五位数,各位数字是: %d,%d,%d,%d,%d\n",a,b,c,d,e);
printf("逆序数是: %d %d %d %d %d\n",e,d,c,b,a);}
else if (b!=0)
{ printf("这是个四位数,各位数字是: %d,%d,%d,%d\n",b,c,d,e);
printf("逆序数是: %d %d %d %d\n",e,d,c,b);}
else if (c!=0)
{printf("这是个三位数,各位数字是:%d,%d,%d\n",c,d,e);
printf("逆序数是:%d %d
%d\n",e,d,c);}
else if(d!=0)
{ printf("这是个两位数,各位数字是:%d,%d\n",d,e);
printf("逆序数是:%d %d\n",e,d);
}
else if(e!=0)
printf("这是个一位数,各位数字和逆序数 皆是:%d \n", e);
}
方法二:
#include<stdio.h>
void main()
{long int num;
int g,s,b,q,w,p;
scanf("%ld",&num);
if(num>9999) p=5;
else if(num>999) p=4;
else if(num>99) p=3;
else if(num>9) p=2;
else p=1;
printf("p=%d\n",p);
w=num/10000;
q=(num-w*10000)/1000;
b=(num-W*10000-q*1000)/100;
s=(num-w*10000-q*1000-b*100)/10;
g=num-w*10000-q*1000-b*100-s*10;
switch(p)
{case 5:printf("%d,%d,%d,%d,%d\n",w,q,b,s,g);
printf("%d,%d,%d,%d,%d\n",g,s,b,q,w); break;
case 4:printf("%d,%d,%d,%d\n",q,b,s,g);
printf("%d,%d,%d,%d\n",g,s,b,q); break;
case 3:printf("%d,%d,%d\n",b,s,g);
printf("%d,%d,%d\n",g,s,b); break;
case 2:printf("%d,%d\n",s,g);
printf("%d,%d\n",g,s); break;
case 1:printf("%d\n",g);
printf("%d\n",g);
}
}
-----------------------------------------------------------------------------
【程序30】 :一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
1.程序分析:同29例
2.程序源代码:
#include<stdio.h>
void main( )
{long ge,shi,qian,wan,x;
scanf("%ld",&x);
wan=x/10000;
qian=x%10000/1000;
shi=x%100/10;
ge=x%10;
if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/
printf("this number is a huiwen\n");
else
printf("this number is not a huiwen\n");
}
-----------------------------------------------------------------------------
【程序31】请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
2.程序源代码:
#include <stdio.h>
viod 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 hur
ry up!
1.程序分析:
2.程序源代码:
#include <conio.h>
#include <stdio.h>
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()函数
1.程序分析:
2.程序源代码:
#include <conio.h>
#include <stdio.h>
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");
}
-----------------------------------------------------------------------------