#include <stdio.h>
int main()
{
int a[80]={0};
int n=0,i;
int j, k=0,max,min;
scanf_s("%d", &n);
for (i = 0; i < n; i++) { scanf_s("%d", &a[i]); }
void max_min(int a[80], int i);
max_min(a, n);
for (i = 0; i < n; i++) { printf("%d ", a[i]); }
return 0;
}
void max_min(int a[], int n) {
int max, min;
int i, temp;
for (i = 0, max = min = 0; i < n; i++) {
if (a[i] < a[min])min = i;
if (a[i] > a[max])max = i;
}
temp = a[0]; a[0] = a[min]; a[min] = temp;
if (max == 0) {
max = min;
}
temp = a[n - 1]; a[n - 1] = a[max]; a[max] = temp;
}
返回值有没有,只是内部交换没有return的时候是不是就是用void,不然每次都说没有返回值神那么的
当第一个值就是最大值的时候!注意!!!
max=min,指max占有min原来的位置的下标,然后再换。
if (max==0)很重要!
输入:4
100 1 5 9
输出:1 9 5 100
100先与1互换,再和9互换