编写一个程序,接受用户输入一个三位整数,然后按照该数位上的数字递增顺序重新组合成一个新的三位数,并显示这个重组后的三位数是多少。例如,如果输入的是123,那么输出应为123(保持不变),但如果输入的是453,应输出345。请确保代码能够处理所有可能的输入情况。C语言
时间: 2024-10-14 15:13:43 浏览: 20
小学一年级数学下册试卷.doc
4星 · 用户满意度95%
在C语言中,你可以通过接收用户的输入,分割每一位数字并按升序排列来实现这个功能。以下是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 函数用于将字符串转换为整数,并保持原顺序
int get_sorted_num(const char* input) {
int num = atoi(input); // 将字符串转为整数
char digits[4]; // 存储每一位数字
sprintf(digits, "%d", num); // 将整数拆分成字符数组
digits[3] = '\0'; // 结束字符串
char sorted_digits[4];
strcpy(sorted_digits, digits);
// 按升序排列
for (size_t i = 0; i < 3; ++i) {
for (size_t j = i + 1; j < 3; ++j) {
if (digits[i] > digits[j]) {
char temp = digits[i];
digits[i] = digits[j];
digits[j] = temp;
}
}
}
// 重新构造三位数
sorted_digits[3] = '\0';
return atoi(sorted_digits);
}
int main() {
char input[4];
printf("请输入一个三位数:");
fgets(input, sizeof(input), stdin); // 避免读取换行符
input[strcspn(input, "\n")] = '\0'; // 删除末尾的换行符
int result = get_sorted_num(input);
printf("按照递增顺序组成的三位数是:%d\n", result);
return 0;
}
```
阅读全文