首页 > 其他 > 详细

hdu 2016

时间:2015-03-11 09:16:45      阅读:299      评论:0      收藏:0      [点我收藏+]
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,i,temp,cnt,min;
 int str[100];
 while(scanf("%d",&n)!=EOF){
  if(n==0) return 0;
  else{
   for(i=1;i<=n;i++){
    scanf("%d",&str[i]);
   }
   min=str[1];
   cnt=1;
   for(i=2;i<=n;i++){
    if(str[i]<min){
     min=str[i];
     cnt=i;
    }
   }
   if(cnt!=1){
    temp=str[1];
    str[1]=min;
    str[cnt]=temp;
   }
   for(i=1;i<=n;i++){
    printf("%d",str[i]);
    if(i<n) printf(" ");
    else printf("\n");
   }
  }
 }
 return 0;
}
 
 
 
tip:当第一个数最小时要单独打个if判断一下,还有min=str[1]时,cnt=1!

hdu 2016

原文:http://www.cnblogs.com/sd1427407009/p/4328951.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!