c语言编程实现:输入一个三位数,输出这个数的三位重新组合后得到的最大数
时间: 2024-10-14 19:11:33 浏览: 12
在C语言中,你可以通过以下步骤实现输入一个三位数,然后将其数字重新排列形成最大的三位数的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 将字符串转换成整数
int string_to_int(char *str) {
int num = 0;
for (int i = 0; str[i] != '\0'; ++i) {
num = num * 10 + (str[i] - '0');
}
return num;
}
// 将整数转换成字符串并保存最大排列
char* max_permutation(int num) {
char str[5];
int arr[4], i, j, max_index;
// 分离每一位数字
while(num > 0) {
arr[i++] = num % 10;
num /= 10;
}
// 对数组进行排序
for(i = 0; i < 3; ++i) {
for(j = 0; j < 3 - i; ++j) {
if(arr[j] > arr[j+1]) {
char temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
// 将排序后的数字组成新字符串
max_index = 0;
for(i = 0; i < 3; ++i) {
str[max_index++] = arr[i] + '0';
}
str[max_index] = '\0';
return str;
}
int main() {
char input_str[10];
printf("请输入一个三位数:");
scanf("%s", input_str);
int num = string_to_int(input_str);
char *max_num = max_permutation(num);
printf("该数的三位重新组合后得到的最大数是:%s\n", max_num);
free(max_num); // 不要忘记释放动态分配的内存
return 0;
}
```
在这个程序中,我们首先将用户输入的字符串转换成整数,然后将每个位数字提取出来并存储到一个数组中,对数组进行降序排序。最后,我们按顺序拼接排序后的数组元素生成新的字符串,并输出结果。
阅读全文