杭电ACM-2016

2017-01-22  本文已影响0人  1QzUPm_09F

题目:

2016题

代码:

#include<stdio.h>
int n,a[105],i,min,flag,t;
int main()
{
    while(~scanf("%d",&n))
    {
        if(n==0)
            return 0;
        scanf("%d",&a[0]);
        min=a[0];
        flag=0;//记住归零!!!
        for(i=1;i<n;i++)
        {
            scanf("%d",&a[i]);
            if(min>a[i])
            {
                min=a[i];
                flag=i;
            }
        }
        if(flag!=0)
        {
            t=a[flag];
            a[flag]=a[0];
            a[0]=t;
        }
        for(i=0;i<n;i++)
        {
            if(i!=0)
                printf(" ");
            printf("%d",a[i]);
        }
        printf("\n");
    }
    return 0;
}

注意:只要用if改过的地方要考虑第二次循环后,是否归为原处,在这道题就是min与flag的归零问题!!!

上一篇下一篇

猜你喜欢

热点阅读