c语言编写一个程序,让它有以下功能:从键盘输入一个五位整数,对此整数中的五个数值(即万位、千位、百位、十位、个位以上的数字)进行从大到小的排列,形成一个新的五位整数,并输出这个整数。(备注:数组赋值:不能直接一起变量赋值。)
时间: 2024-12-17 12:34:09 浏览: 6
c代码-4. 功能:从键盘中输入一个小写字母,要求改用大写字母输出,并输入它的ascii
在C语言中,你可以创建一个函数来完成这个任务。首先,我们需要接收用户的输入,然后将这个五位数分解成单个数字,存储在一个数组中。接着,我们可以使用冒泡排序算法对这些数字进行降序排列。最后,我们将排好序的数字组合成一个新的五位数并输出。以下是完整的程序:
```c
#include <stdio.h>
// 函数用于将五位数转换成字符数组并排序
void sort_and_format(int num) {
int digits[5];
for (int i = 0; i < 5; i++) {
digits[i] = num % 10;
num /= 10;
}
// 冒泡排序
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4 - i; j++) {
if (digits[j] < digits[j + 1]) {
// 交换元素
int temp = digits[j];
digits[j] = digits[j + 1];
digits[j + 1] = temp;
}
}
}
// 将排序后的数字重新组合成五位数
char formatted_num[6];
formatted_num[0] = '\0';
for (int i = 4; i >= 0; i--) {
sprintf(formatted_num + i, "%d", digits[i]);
}
printf("Sorted number is: %s\n", formatted_num);
}
int main() {
int input;
printf("Enter a five-digit integer: ");
scanf("%d", &input);
sort_and_format(input);
return 0;
}
```
阅读全文