c语言输入一个int 型整数,按照从右向左的顺序输出,返回一个不含重复数字的新的整数。 例如:long getConvertInt(long ilnput)
时间: 2024-09-27 08:06:39 浏览: 31
在C语言中,你可以通过遍历输入的整数每一位,并检查是否已存在新字符串中来实现这个功能。这里是一个简单的函数设计思路:
```c
#include <stdio.h>
#include <stdbool.h>
// 定义字符数组用于存储转换后的无重复数字整数
char result[20];
// 助手函数,用于将一位数字添加到结果数组并检查是否存在重复
bool add_digit(int digit, size_t index) {
if (index == 0 || result[index - 1] != (digit + '0')) {
result[index] = digit + '0';
return true;
}
return false;
}
// 主函数,实现从右向左转换并去重
long getConvertInt(long input) {
size_t i = sizeof(result) - 1; // 从字符串末尾开始
while (input > 0) {
int digit = input % 10;
if (add_digit(digit, i)) {
input /= 10;
i--;
} else {
break; // 如果当前位已经存在,跳过该位
}
}
result[i + 1] = '\0'; // 添加结束符
long converted = strtol(result, NULL, 10); // 将字符串转换回整数
return converted;
}
int main() {
long input_num;
printf("请输入一个整数: ");
scanf("%ld", &input_num);
long converted = getConvertInt(input_num);
printf("转换后的无重复数字整数: %ld\n", converted);
// 相关问题:
阅读全文