C语言,交换最大值和最小值

输入10个整数,保存在一维数组a[10]中,找出其中的最小值,并将最小值元素和数组第一个元素值交换。2输出结果中每个数字占3列的宽度。例如:输入:10 5 8 2 3 6 7 1 9 4输出:1 5 8 2 3 6
7 10 9 4

#include <stdio.h>
int main()
{
    int a[10],i,min,t;
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
        if(i==0 || a[i] < a[min])
            min  = i;
    }
    if(min != 0)
    {
        t = a[0];
        a[0] = a[min];
        a[min] = t;
    }
    for(i=0;i<10;i++)
        printf("%3d",a[i]);
}


#include<stdio.h>
int main()
{
    int a[10],i,temp,loc,min;
    for(i=0;i<10;i++)
       scanf("%d",&a[i]);
    min=a[0];
    loc=0;
    for(i=1;i<10;i++)
    {
        if(min>a[i])
        {
            min=a[i];
            loc=i;
        }
    }
    temp=a[0];
    a[0]=a[loc];
    a[loc]=temp;
    for(i=0;i<10;i++)
        printf("%d ",a[i]);
    return 0;
    
}


int main()
{
    int a[10], i, max, min;
    for (i = 0; i < 10; i++)
        scanf("%d", &a[i]);
    max = min = 0;
    for (i = 1; i < 10; i++)
    {
        if (a[i] > a[max])
            max = i;
        if (a[i] < a[min])
            min = i;
    }
    i = a[min];
    a[min] = a[max];
    a[max] = i;

    for (i = 0; i < 10; i++)
        printf("%3d", a[i]);
    return 0;
}