/* 数据的交换输出 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 54495 Accepted Submission(s): 20688
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 a[100]={0}; int i,j,k,n,m,t; while(scanf("%d",&n),n){ scanf("%d",&a[0]); m=0; for(i=1;i<n;i++){ //此题的关键点就是理解将最小的数和a[0]交换位置。事实上也就是数组角码的更换 scanf("%d",&a[i]); //首先。需找出数组中的最小值 if(a[i]<a[m]){ m=i; } } t=a[m]; //数组的交换 a[m]=a[0]; a[0]=t; for(i=0;i<n;i++){ if(i<n-1) printf("%d ",a[i]); //输出注意格式 else printf("%d\n",a[i]); } }return 0; }
转载于:https://www.cnblogs.com/bhlsheji/p/5218289.html