用C语言编程实现如下:输入一个整数(可以是正数,负数或者0),要求:(1)求出它是几位数; (2)分别输出每一位数字.例如123,输出123; (3)按逆序输出各位数字,例如原数为 321,应输出123。
时间: 2024-09-27 13:07:51 浏览: 34
在C语言中,你可以通过以下几个步骤实现这个功能:
1. **获取整数位数**:
使用`strlen()`函数可以计算字符串的长度,实际上这等同于整数的位数。需要注意的是,你需要先将整数转换成字符串。
```c
#include <stdio.h>
#include <string.h>
int main() {
int num;
printf("请输入一个整数: ");
scanf("%d", &num);
// 将整数转换为字符串
char str[100];
sprintf(str, "%d", num);
// 计算位数
int length = strlen(str);
printf("该数有%d位。\n", length);
}
```
2. **输出每一位数字**:
遍历字符串,依次打印每个字符即可。
```c
for(int i=0; i<length; i++) {
printf("%c", str[i]);
}
printf("\n");
```
3. **逆序输出各位数字**:
可以使用双指针技巧,一个从前往后遍历,一个从后往前遍历,并交换它们指向的字符。
```c
char reverse_str[100];
int left = 0, right = length - 1;
while (left < right) {
swap(&str[left], &str[right]);
left++;
right--;
}
printf("逆序后的数字是: ");
for(int i=0; i<length; i++) {
printf("%c", str[i]);
}
printf("\n");
return 0;
}
// 模拟swap函数
void swap(char* a, char* b) {
char temp = *a;
*a = *b;
*b = temp;
}
```
阅读全文