对一个int型的长度为n(由自己输入)的数组进行从小到大的排序:
#include <iostream>
#include <stdlib.h>
using namespace std;
int *num;
int cmp(const void *a, const void *b) {
return *((int *)b) - *((int *)a); //前减后从小到大 后减前从大到小
}
int main() {
int n;
cin >> n;
num = new int[n + 1];
for (int i = 1; i <= n; i++) {
cin >> num[i];
}
qsort(num + 1, n, sizeof(int), cmp);
for (int i = 1; i <= n; i++) {
cout << num[i];
}
system("pause");
return 0;
}
对结构体num以n为基准从小到大进行排序
#include <iostream>
#include <stdlib.h>
using namespace std;
struct num {
int n;
} * k;
int cmp(const void *a, const void *b) { return (*(num *)a).n - (*(num *)b).n; }
int main() {
int n;
cin >> n;
k = new num[n + 1];
for (int i = 1; i <= n; i++) {
cin >> k[i].n;
}
qsort(k + 1, n, sizeof(num), cmp);
for (int i = 1; i <= n; i++) {
cout << k[i].n;
}
system("pause");
return 0;
}