解法一:
#include<stdio.h>
#include<string.h>
void main()
{
long int num;
int indiv,ten,hundred,thousand,ten_thousand,place;
printf("请输入一个整数(0~99999);");
scanf("%ld",&num);
if(num>9999)
place=5;
else if(num>999)
place=4;
else if(num>99)
place=3;
else if(num>9)
place=2;
else place=1;
printf("place=%d\n",place);
printf("每位数字为:");
ten_thousand=num/10000;
thousand=(int)(num-ten_thousand*10000)/1000;
hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;
ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;
indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);
switch(place)
{
case 5:printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);
printf("\n反序数字为:");
printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);
break;
case 4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);
printf("\n反序数字为:");
printf("%d%d%d%d%\n",indiv,ten,hundred,thousand);
break;
case 3:printf("%d,%d,%d",hundred,ten,indiv);
printf("\n反序数字为:");
printf("%d%d%d%\n",indiv,ten,hundred);
break;
case 2:printf("%d,%d",ten,indiv);
printf("\n反序数字为:");
printf("%d%d\n",indiv,ten);
break;
case 1:printf("%d",indiv);
printf("\n反序数字为:");
printf("%d\n",indiv);
break;
}
}
解法二:
#include<stdio.h>
#include<string.h>
void main()
{
int i=0,k,n,num,a[5];
scanf("%d",&num);
if(num==0)
return 0;
if(num>99999)
return 0;
while(num!=0){
a[i++]=num%10;
num/=10;
}
printf("%d\n",i);
for(k=i-1;k>=0;k--)
printf("%d ",a[k]);
for(k=0;k<i;k++)
printf("%d ",a[k]);
return 0;
}
解法三:
#include<stdio.h>
#include<string.h>
void main()
{
char strNumber[6];
char intNumber[6];
int strLength;int i;
scanf("%s",strNumber);
strLength=strlen(strNumber);
if(strLength>5) printf("error");
else
printf("The length of the number is %d\n",strLength);
for(i=0;i<strLength;i++)
{
intNumber[i]=strNumber[i]-'0';}
for(i=0;i<strLength;i++)
{printf("%2d",intNumber[i]);}
printf("\n");
for(i=strLength-1;i>=0;i--)
{ printf("%2d",intNumber[i]);
}
}