训练1-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
",a[i]);
	}
	return 0;
}

...

原文地址:https://www.cnblogs.com/aerer/p/9931098.html