输入一个不大于5位的整数,判断它的个数,并逆序输出。
例如:输入1234, 输出4个,4321
输入012,输出2个,21
#include <stdio.h>
int main(int argc, const char *argv[])
{
int num=0;
printf("输入一个不大于5位的数:");
scanf("%d",&num);
int w=0,q=0,b=0,s=0,g=0;
int rev=0;
if(num<10){
printf("输出1个\n");
}else if(num<=99){
s=num/10;
g=num%10;
s=s^g;
g=s^g;
s=s^g;
printf("输出2个,逆序为%d%d\n",s,g);
}else if(num<=999){
b=num/100;
s=num/10%10;
g=num%10;
rev=g*100+s*10+b*1;
printf("输出3个,逆序为%d\n",rev);
}else if(num<=9999){
q=num/1000;
b=num/100%10;
s=num%100/10;
g=num%10;
rev=g*1000+s*100+b*10+q*1;
printf("输出4个,逆序为%d\n",rev);
}else if(num<=99999){
w=num/10000;
q=num%10000/1000;
b=num%1000/100;
s=num%100/10;
g=num%100%10;
rev=g*10000+s*1000+b*100+q*10+w*1;
printf("输出5个,逆序为%d\n",rev);
}
else{
printf("输入错误\n");
}
return 0;
}
测试结果:
ubuntu@ubuntu:c基础$ ./a.out
输入一个不大于5位的数:6
输出1个
ubuntu@ubuntu:c基础$ ./a.out
输入一个不大于5位的数:012
输出2个,逆序为21
ubuntu@ubuntu:c基础$ ./a.out
输入一个不大于5位的数:327
输出3个,逆序为723
ubuntu@ubuntu:c基础$ ./a.out
输入一个不大于5位的数:1234
输出4个,逆序为4321
ubuntu@ubuntu:c基础$ ./a.out
输入一个不大于5位的数:13275
输出5个,逆序为57231
ubuntu@ubuntu:c基础$ ./a.out
输入一个不大于5位的数:168687
输入错误