C语言练习题-C语言练习题实例29
题目:给定一个不多于5位的正整数,要求:一、计算它是几位数;二、逆序打印各位数字。
程序分析:学会分解出每一位数,如下所示。
实例
#include <stdio.h>
int main() {
long a, b, c, d, e, x;
printf("请输入 5 位数字:");
scanf("%ld", &x);
a = x / 10000; // 分解出万位
b = x % 10000 / 1000; // 分解出千位
c = x % 1000 / 100; // 分解出百位
d = x % 100 / 10; // 分解出十位
e = x % 10; // 分解出个位
if (a != 0) {
printf("为 5 位数,逆序为:%ld %ld %ld %ld %ld\n", e, d, c, b, a);
} else if (b != 0) {
printf("为 4 位数,逆序为:%ld %ld %ld %ld\n", e, d, c, b);
} else if (c != 0) {
printf("为 3 位数,逆序为:%ld %ld %ld\n", e, d, c);
} else if (d != 0) {
printf("为 2 位数,逆序为:%ld %ld\n", e, d);
} else if (e != 0) {
printf("为 1 位数,逆序为:%ld\n", e);
}
return 0;
}
以上实例输出结果为:
请输入 5 位数字:12345
为 5 位数,逆序为:5 4 3 2 1
该程序根据输入的正整数的位数,进行位数判断并逆序打印各位数字。在主函数中,我们接受用户输入的5位数字,并使用除法和取余运算分解出各位数字,分别保存在变量 a
、b
、c
、d
和 e
中。然后使用多个 if
条件语句进行位数判断,根据不同位数的情况进行逆序打印。