数据的交换输出【杭电-2016】 附题

it2025-06-20  4

/* 数据的交换输出 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

最新回复(0)