给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零 c语言
时间: 2024-12-16 22:18:24 浏览: 14
在C语言中,你可以通过以下步骤来实现一个函数,将整数的各位数字反转,同时保证结果不是0开头(除了输入为0的情况):
```c
#include <stdio.h>
#include <string.h> // 引入字符串库用于处理字符数组
// 函数声明,接收一个int类型的参数并返回int
int reverseInteger(int num);
// 主要的反转函数
int reverseInteger(int num) {
int reversed = 0; // 初始化反转后的数字
if (num == 0) { // 如果输入是0,则直接返回0
return 0;
}
while (num != 0) {
int remainder = num % 10; // 取出最后一位数字
reversed = (reversed * 10) + remainder; // 将剩余位左移,并添加当前位
num /= 10; // 移除最低位
}
// 如果反转后的数字首位是0,需要减去1
if (reversed > 9 && reversed % 10 == 0) {
reversed -= 9;
}
return reversed;
}
int main() {
int input;
printf("请输入一个整数:");
scanf("%d", &input);
int result = reverseInteger(input);
printf("反转后的整数为:%d\n", result);
return 0;
}
```
这个程序首先检查输入是否为0,然后通过循环取出每一位数字,逐位拼接到反转后的结果上。最后,如果反转后的第一位是0,就从结果中减去9以避免0开头。
阅读全文