//输入一个不多于五位的正整数,求出他是几位数,并输出各位数;
#include<stdio.h>
int main()
{
int num;
printf("请输入一个不多于五位的正整数:\n");
scanf("%d",&num);
if(num < -1 || num > 99999){
printf("输入不合法,请重新输入。\n");//第一步:判断输入的数字是不是一个不多于五位的正整数且是不是正整数。
return 0;
}
if(num >= 9999 && num <= 99999){//如果这个数字大于等于9999且小于99999他就是五位数
printf("输入的数字位数为5\n");
}
else if(num >= 999 && num <= 9999){//如果这个数字大于等于999且小于9999他就是四位数
printf("输入的数字位数为4\n");
}
else if(num >= 99 && num <= 999){//如果这个数字大于等于99且小于999他就是三位数
printf("输入的数字位数为3\n");
}
else if(num >= 9 && num <= 99){//如果这个数字大于等于9且小于99他就是两位数
printf("输入的数字位数为2\n");
}
else{
printf("输入的数字位数为1\n");//上述条件全部不满足,则为一位数
}
if(num / 10000 >= 0){
printf("%d\n",num / 10000);//输入的5位数除以10000得万位数字,并将其输出。
}
if(num % 10000 >= 1000){
printf("%d\n",(num % 10000) / 1000);//输入的五位数字对10000取余得其余的四位数,将其余的四位数除以1000得千位数字,并将其输出。
}
if(num % 1000 >= 100){
printf("%d\n",(num % 1000) / 100);//剩下的四位数字对1000取余得其余的三位数,将其余的三位数除以100得百位数字,并将其输出。
}
if(num % 100 >= 10){
printf("%d\n",(num % 100) / 10);//剩下的三位数字对100取余得其余的两位数,将其余的两位数除以10得十位数字,并将其输出。
}
if(num % 10 >= 0){
printf("%d\n",(num % 10));//将剩下的两位数字对10取余得其余的一位数字,并将其输出。
}
//————————————————————————————————————————————————————————————————————————————————————————————
//这里开始逆序执行27行至41行代码,即可将输入的<=5位的正整数的各位数字逆序输出。
if(num % 10 >= 0){
printf("%d\n",(num % 10));
}
if(num % 100 >= 10){
printf("%d\n",(num % 100) / 10);
}
if(num % 1000 >= 100){
printf("%d\n",(num % 1000) / 100);
}
if(num % 10000 >= 1000){
printf("%d\n",(num % 10000) / 1000);
}
if(num / 10000 >= 0){
printf("%d\n",num / 10000);
}//逆序执行完成。
return 0;
}
如图所示,我输入正整数12345:
输出完成
如图,显示输入的数字位数为5,且将我输入的正整数按照顺序和逆序依次输出了出来。
#include<stdio.h>
void Reverse(int n)
{
if (n > 0)
{
printf("%d ", n % 10);
Reverse(n / 10);
}
}
int main()
{
int t = 0;
int n = 0;
printf("请输入一个整数:");
scanf("%d", &n);
Reverse(n);
return 0;
}
如图我输入123,输出结果为:
输出完成