选择排序,我想使代码最多交换n-1次,不知道为什么无法实现正确的交换
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int a[n];
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
int t;
for (int i = 0; i < n-1; i++) {
int max = i;
for (int j = i + 1; j < n; j++) {
if (a[j] > a[i]) {
max = j;
}
}
if (max != i) {
t = a[max];
a[max] = a[i];
a[i] = t;
}
}
for (int i = 0; i < n; i++) {
printf("%d", a[i]);
if(i!=n-1) printf(" ");
}
}