使用C语言:给一个不多于5位的正整数,要求: ① 求出它是几位数 ②分别打出每一位数字 ③ 按逆序打出各位数字,例如原数为321,应输出 123 ①本题目中3个问题的求解代码应编写在同一个函数中 ②本题的核心问题有两个:一是判断输入的整数是几位数,二是取出该整数的各数位。编写码时,先①再②或先②再①均可,最后输出结果。
时间: 2023-05-23 09:00:51 浏览: 160
以下是使用C语言,实现输入一个不多于5位的正整数,求出它是几位数,分别输出每一位数字,并按逆序打出各位数字的代码:
```c
#include <stdio.h>
void print_num(int num);
int main()
{
int num;
printf("请输入一个不多于5位的正整数:");
scanf("%d", &num);
print_num(num);
return 0;
}
void print_num(int num)
{
int digit = 0; // 位数
int n = num;
// 计算位数
while (n != 0) {
digit++;
n /= 10;
}
printf("它是%d位数\n", digit);
// 分别输出每一位数字
printf("每一位数字为:");
while (num != 0) {
int digitNum = num % 10;
printf("%d ", digitNum);
num /= 10;
}
// 按逆序打出各位数字
printf("\n按逆序打出各位数字:");
while (digit > 0) {
int digitNum = (int)(num / pow(10, digit -1)) % 10;
printf("%d ", digitNum);
digit--;
}
}
```
注:该代码使用了函数,函数的名字为`print_num(int num)`,接收一个整数作为参数,执行三部分任务,分别是计算数字的位数,分别输出每一位数字,打印逆序的数字。该函数通过调用`pow()`函数计算各位数字。
示例输出:
```
请输入一个不多于5位的正整数:321
它是3位数
每一位数字为:1 2 3
按逆序打出各位数字:3 2 1
```
```
请输入一个不多于5位的正整数:12
它是2位数
每一位数字为:2 1
按逆序打出各位数字:1 2
```
```
请输入一个不多于5位的正整数:55555
它是5位数
每一位数字为:5 5 5 5 5
按逆序打出各位数字:5 5 5 5 5
```
阅读全文