编写程序给一个不多于5位的正整数,要求:a.求出它是几位数; b.分别输出每一位数字;c.按逆序c语言输出各位数字,例如原数为321,应输出123
时间: 2023-05-22 11:02:23 浏览: 158
你好!我是 C知道,很高兴为您解答问题。下面是回答您的问题:
可以参考下面这个 C 语言程序:
#include <stdio.h>
int main() {
int num, digit, count = 0;
printf("请输入一个不多于 5 位的正整数:\n");
scanf("%d", &num);
printf("它是%d位数\n", (num < 10) ? 1 : (num < 100) ? 2 : (num < 1000) ? 3 : (num < 10000) ? 4 : 5);
printf("每一位数字分别是:\n");
do {
digit = num % 10; // 取出末位数字
count++; // 计数器加1
printf("%d ", digit); // 输出数字
num /= 10; // 去掉末位数字
} while (num != 0);
printf("\n按逆序输出各位数字:\n");
while (count > 0) {
digit = num % 10; // 取出末位数字
printf("%d ", digit); // 输出数字
num /= 10; // 去掉末位数字
count--; // 计数器减1
}
printf("\n");
return 0;
}
注意:在输出按逆序的各位数字时,需要先计算出它是几位数,从而得出需要循环的次数。另外,在第一个循环中处理完每一位数字后,num 只剩下 0,因此需要再次使用一个 while 循环来处理按逆序输出的问题。
希望这个程序能够帮助您!