如何用C语言编写程序来实现以下功能:对于输入的一个不超过5位的整数,程序应做到:1)确定其位数;2)逐个输出每个数字;3)按照逆序方式显示每位数字(如输入321,则输出123)。请提供详细的步骤和代码示例。
时间: 2024-11-03 15:21:30 浏览: 36
要在C语言中实现这个功能,你可以按照以下步骤操作:
1. 首先,定义一个函数`int reverseInput(int num)`来接收输入的整数,并返回其逆序后的每一位数组。
2. 再定义一个函数`void displayDigits(int arr[], int length)`来遍历并打印数组中的每一位数字。
3. 主函数`main()`中获取用户输入,调用上述两个函数。
以下是具体的代码示例:
```c
#include <stdio.h>
// 函数:逆序输入整数并存储到数组
int* reverseInput(int num) {
int digits[6]; // 假设最大5位数,预留一位0作为结束标志
int index = 0;
while (num > 0) {
digits[index++] = num % 10; // 取余得到每一位
num /= 10; // 向右移除最低位
}
// 如果输入小于5位,将数组最后一项置为0
if (index != 5)
digits[index] = 0;
return digits;
}
// 函数:打印数组中的每一位
void displayDigits(int arr[], int length) {
for (int i = length - 1; i >= 0; i--) {
printf("%d", arr[i]);
}
}
int main() {
int input;
printf("请输入一个不超过5位的整数:");
scanf("%d", &input);
// 获取逆序数组并打印
int *reversed = reverseInput(input);
displayDigits(reversed, 6); // 注意这里长度是6,因为预留了一位0
free(reversed); // 释放内存
return 0;
}
```
在这个程序中,用户输入一个整数后,`reverseInput()`函数会将其逆序存储在`digits`数组中,然后`displayDigits()`函数负责按顺序输出。注意,在实际应用中,不需要保留数组的最后一项,可以根据具体需求修改。
阅读全文