杭电2016

来源:互联网 发布:mysql配置 编辑:程序博客网 时间:2024/05/16 17:39

是交换数字的问题

#include<iostream>
using namespace std;
int main()
{  int n,a;
   int c[100];
   while(cin>>n&&n!=0)
   { for(int i=0;i<n;i++)
    {
       cin>>a;
       c[i]=a;
    }
    int min=0;int b=0;
    for(int j=1;j<n;j++)
    {
        if(c[j]<c[min])
        {
           min=j;
        }

    }
    int temp;
    temp=c[0];
    c[0]=c[min];
    c[min]=temp;
    for(int h=0;h<n-1;h++)
    {
        cout<<c[h]<<" ";
    }
    cout<<c[n-1]<<endl;
   }
   return 0;
}

首先比较困惑的是,我只是把最小的数字通过比较找了出来而已,并没有把下标同时记住。后来,参考网上的一些做法,因为我比较的是数字,而数字也是可以用数组加上他特有的下标来表示,所以,当我找到一个比较小的数字时,我可以通过改变他的下标来记录这个数字,这样之后和第一个数字调换的时候就比较方便了、

自己本想用void swap来写的,后来发现是数组,就不会将数组swap了。。。还得去网上看看。。。

0 0