資料的交換輸出 hd 2016

q923714892發表於2020-04-06
Problem Description
輸入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,j,min,i;
	int a[110];
	while(scanf("%d",&n)!=EOF)
	{
		if(n==0) break;
		min=999999;
		for(i=0;i<n;i++)
		scanf("%d",&a[i]);
		for(i=0;i<n;i++)
		{
			if(a[i]<min)
			{
				min=a[i];
				j=i;
			}
		}
		a[j]=a[0];
		a[0]=min;
		printf("%d",a[0]);
		for(i=1;i<n;i++)
		printf(" %d",a[i]);
		printf("\n");
	}
	return 0;
}


相關文章