c语言实现任意输入一个自然数输出最大排序
时间: 2023-08-04 15:15:46 浏览: 116
c语言实现排序算法
5星 · 资源好评率100%
对于任意输入的自然数,可以将它们转换成字符串,然后按照字符串的大小比较规则进行排序,最后将排好序的字符串按照从大到小的顺序连接起来,即可得到最大排序。
以下是一份示例代码实现:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int compare(const void *a, const void *b) {
char s1[20], s2[20];
sprintf(s1, "%d%d", *(int*)b, *(int*)a);
sprintf(s2, "%d%d", *(int*)a, *(int*)b);
return strcmp(s1, s2);
}
int main() {
int n, i;
printf("请输入自然数个数n:");
scanf("%d", &n);
int nums[n];
printf("请输入%d个自然数:", n);
for (i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
qsort(nums, n, sizeof(int), compare);
printf("最大排序为:");
for (i = 0; i < n; i++) {
printf("%d", nums[i]);
}
return 0;
}
```
该程序会先读入自然数的个数,然后读入每个自然数。在排序时,我们定义了一个比较函数 `compare` ,该函数将两个自然数转换成字符串后进行比较,从而实现了按照字符串大小比较的排序。最后将排序后的自然数按顺序输出即可。
阅读全文