杭电Oj刷题(2016)

数据的交换输出

题目描述:

输入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],min;
	while(scanf("%d",&n)!=EOF){
		if(n==0)break;         //为0则跳出循环 
	    for(int i=0;i<n;i++){    //依次输入数据 
	    	int m;
	    	scanf("%d",&m);
	    	a[i]=m;
		}
		min=0;                  //找到最小值 
		for(int i=1;i<n;i++){
			if(a[i]<a[min]){
				min=i;
			}
		}
		int temp=a[min];        //交换最小值和第一个数 
		a[min]=a[0];
		a[0]=temp;
		for(int i=0;i<n;i++){      //输出格式一定要注意!!! 
			if(i!=0){
				printf(" ");      //空格添加 
			}
			printf("%d ",a[i]);
		}
		printf("\n");          //换行 
    }
    return 0;
}
发布了55 篇原创文章 · 获赞 0 · 访问量 1023

猜你喜欢

转载自blog.csdn.net/ZhangShaoYan111/article/details/104083925