C语言输入整数判断多少位、每一位分别是多少、逆序输出
时间: 2024-10-11 14:05:02 浏览: 20
进制转换 把一个任意的十进制正整数 N 转换成 d 进制数。 N 是一个正整数,d 是一个大于 1 小于 10 的整数,二者均由用户输入,且两数字用换行分隔。
在C语言中,要实现这个功能,你需要首先读取用户输入的整数,然后判断其位数,再分别获取每一位,并将它们逆序输出。以下是一个简单的步骤:
1. **输入整数**:可以使用`scanf`函数从标准输入接收整数,例如:
```c
int num;
printf("请输入一个整数:");
scanf("%d", &num);
```
2. **判断位数**:可以通过除权移位的方式,每次除以10并将余数存储到数组中,直到商变为0。数组的长度就是位数减一。例如:
```c
int bits[32]; // 如果你的int最大值是2^31 - 1
int bit_count = 0;
while (num > 0) {
bits[bit_count++] = num % 10; // 取余并存入数组
num /= 10; // 除以10
}
```
3. **逆序输出每一位**:从数组的末尾开始,逐个输出每一位:
```c
for (int i = bit_count - 1; i >= 0; i--) {
printf("%d", bits[i]);
}
```
4. **完整示例**:
```c
#include <stdio.h>
void reverseInt(int num[], int len) {
for (int i = len - 1; i >= 0; i--) {
printf("%d", num[i]);
}
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
int bits[32];
int bit_count = 0;
while (num > 0) {
bits[bit_count++] = num % 10;
num /= 10;
}
reverseInt(bits, bit_count);
return 0;
}
阅读全文