任务:
输入一个不少于5位的数,先求它是几位数,然后逆序打印各个数字
分析:
难点:取各个位置的数
口诀:取哪位,除多少,再取10
a = num / 10000 % 10; //取万位
b = num / 1000 % 10; //取千位
c = num / 100 % 10; //取百位
d = num / 10 % 10; //取十位
e = num / 1 % 10; //取个位
解答:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
printf("输入一个数:\n");
int num = 0;
scanf("%d", &num);
int a=0;
int b=0;
int c=0;
int d=0;
int e=0;
a = num / 10000 % 10;
b = num / 1000 % 10;
c = num / 100 % 10;
d = num / 10 % 10;
e = num / 1 % 10;
if (a != 0)
{
printf("是个五位数");
printf("%d%d%d%d%d", e, d, c, b, a);
}
else if(b!=0)
{
printf("是个四位数");
printf("%d%d%d%d", e, d, c, b);
}
else if (c != 0)
{
printf("是个三位数");
printf("%d%d%d", e, d, c);
}
else if (d != 0)
{
printf("是个二位数");
printf("%d%d", e, d);
}
else if (e != 0)
{
printf("是个一位数");
printf("%d", e);
}
return 0;
}
总结:
难点在于取各个位置上的数字,之后判断各个位置上是否为0,再逆序输出即可。