X-交换输出最小值

输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。 
Input输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。Output对于每组输入数据,输出交换后的数列,每组输出占一行。Sample Input
4 2 1 3 4
5 5 4 3 2 1
0
Sample Output
1 2 3 4
1 4 3 2 5
#include<stdio.h>  
int main()  
{  
    int n,a[100];  
    while(scanf("%d",&n)!=EOF)  
    {  
        if(n==0)  
        return 0;                    //如果n=0,本程序结束  
        int i,min,lab;  
        for(i=0;i<n;i++)  
        scanf("%d",&a[i]);  
        min=a[0];lab=0;  
        for(i=1;i<n;i++)             //循环找出最小值  
        {  
            if(min>a[i])  
            {  
                min=a[i];    //如果找到比min小的数,赋值给min  
                lab=i;       //用lab标记最小值的下标  
            }  
        }  
        a[lab]=a[0];                //交换输出  
        a[0]=min;  
        for(i=0;i<n-1;i++)  
        printf("%d ",a[i]);  
        printf("%d\n",a[i]);
 
    }  
    return 0;  
}

猜你喜欢

转载自blog.csdn.net/lioncatch/article/details/80645139