1、给出一个不多于5位的正整数,要求:
①求出它是几位数
②分别输出每一位数字
③按逆序输出各位数字,例如原数为321,应输出123。
#include<stdio.h>
int main(){
int i;
scanf("%d",&i);
if(i/10000>0){
printf("输出得数是5位数:");
printf("%d",i%100000/10000);
printf("%d",i%10000/1000);
printf("%d",i%1000/100);
printf("%d",i%100/10);
printf("%d",i%10/1);
printf(" 逆序为:");
printf("%d",i%10/1);
printf("%d",i%100/10);
printf("%d",i%1000/100);
printf("%d",i%10000/1000);
printf("%d",i%100000/10000);
}
else if(i/1000>0){
printf("输出得数是4位数:");
printf("%d",i%10000/1000);
printf("%d",i%1000/100);
printf("%d",i%100/10);
printf("%d",i%10/1);
printf(" 逆序为:");
printf("%d",i%10/1);
printf("%d",i%100/10);
printf("%d",i%1000/100);
printf("%d",i%10000/1000);
}else if(i/100>0){
printf("输出得数是3位数:");
printf("%d",i%1000/100);
printf("%d",i%100/10);
printf("%d",i%10/1);
printf(" 逆序为:");
printf("%d",i%10/1);
printf("%d",i%100/10);
printf("%d",i%1000/100);
}else if(i/10>0){
printf("输出得数是2位数:");
printf("%d",i%100/10);
printf("%d",i%10/1);
printf(" 逆序为:");
printf("%d",i%10/1);
printf("%d",i%100/10);
}else {
printf("输出得数是1位数:") ;
printf("%d",i%10/1);
printf(" 逆序为:");
printf("%d",i%10/1);
}
}
总结:
①关于判定一个数是几位数的方法:用这个数除以这个位数的最小位即可。假如输入一个223,用if(233/100)如果是真则是两位数。
②正序、逆序输出一个数:假设这个数为a
a%这个数的位数+1的最小数/这个数的位数的最小数
例如:12345 第五位: 12345%100000/10000=1
第四位: 12345%10000/1000=2
逆序输出调过来即可!