c语言 从键盘输入n个数存放在数组中,将最小值与第一个数交换,输出交换后的n个数

例如:7 5 6 1 7 5 3
结果:1 5 6 7 7 5 3

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int *a;
    int n;
    int i,*max;
    scanf("%d",&n);
    a = (int *)malloc(sizeof(int)*n);
    max = a;
    for(i = 0;i < n; i ++)
    {
        scanf("%d",a+i);
        if(*max < a[i]) max = a+i;
    }
    if(max != a)
    {
        i = *max;
        *max = *a;
        *a=i;
    }
    for(i = 0;i < n; i ++)
        printf("%d ",a[i]);
    
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-02
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,i;
    scanf("%d",&n);
    int a[n],min = 0,d;
    for(i = 0;i < n;i ++){
        scanf("%d",&a[i]);
        if(a[i] < a[min])
            min = i;
    }
    d = a[min];
    a[min] = a[0];
    a[0] = d;
    for(i = 0;i < n;i ++){
        printf("%d ",a[i]);
    }
    printf("\n");
    return 0;
}

相似回答