输入长度不确定的十进制数字,逆向输出 用C语言
时间: 2024-10-27 16:08:20 浏览: 7
在C语言中处理输入长度不确定的十进制数字并逆序输出,可以使用动态内存分配和字符串处理函数。这里是一个简单的示例,用于接收用户输入的整数,然后将每一位逆序打印:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 递归函数,反转单个数的每位
void reverse(char *str, int start, int end) {
if (start >= end)
return;
char temp = str[start];
str[start] = str[end];
str[end] = temp;
reverse(str, start + 1, end - 1);
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
// 将整数转换为字符串,方便处理
char* decimalStr = malloc(sizeof(char) * (strlen((long long)to_string(num)) + 1));
sprintf(decimalStr, "%lld", (long long)num);
// 反转字符串
reverse(decimalStr, 0, strlen(decimalStr) - 1);
printf("逆序后的数字:");
for(int i = 0; i < strlen(decimalStr); ++i) {
printf("%c", decimalStr[i]);
}
printf("\n");
free(decimalStr); // 注意释放动态内存
return 0;
}
// 这里假设有一个辅助函数to_string(),将其替换为实际库中的函数或者自定义实现
```
请注意,上述代码中`to_string()`是一个假设的函数,你需要根据实际情况提供一个将整数转换成字符串的函数。此外,为了简化问题,这个示例假设输入始终有效。在实际应用中,还需要添加错误处理和输入校验。
阅读全文