将数组中最大值与数组中的第一个元素交换,最小值与最后一个元素交换

大家好,我有一个问题,这里我想实现将数组里最大的一个值和第一个元素的值交换,最小的值最后一个元素交换。我想到的方法是将数组元素中的第一个值设定为最大值,最后一个设定为最小值,但是运行却没有结果,想问问大家,我这个代码错在了哪里。谢谢大家
#include <stdio.h>

int main() {
int a[5];
int i, t, max, min;

for (i = 0; i < 5; i++) {
    scanf("%d", &a[i]);
}


max = a[0];
min = a[4];

for (i = 0; i < 5; i++) {
    if (a[i] > max)
        t = i;
}

if (t != 0) {
    a[0] = a[t];
    a[t] = max;//最大值就是第一个数组元素的    
                                  值没变过直接用来赋值
}

t = 0;

for (i = 0; i < 5; i++) {
    if (a[i] < min)
        t = i;
}

if (t != 4) {
    a[4] = a[t];
    a[t] = min;//最小值的想法同最大值
}

return 0;

}

没有写输出啊