杭电ACM 2016: 数据的交换输出

原创作品 转载请注明出处http://blog.csdn.net/always2015/article/details/45477269

杭电ACM 2016: 数据的交换输出_第1张图片

这一道题就是找出最小值然后交换的问题,这个问题不难,我的代码里面有详细的注释,我的AC代码如下:

#include 

using namespace std;

int main(void)
{
    //flag用来表示最小元素的标号,这里初始化为0,即刚开始第一个元素表示最小值,不初始化后面会出错
    int n,*input_str,min_num,flag=0,temp;
    while(cin>>n&&n)
    {
        //为输入数据开辟空间
        input_str=new int[n];

        for(int i=0; icin>>input_str[i];
            //将第一个数设为最小值
            if(i==0)
                min_num=input_str[i];
            //求出整列数字的最小值,保存其下标
            if(input_str[i]//将最小值和第一个元素互换
        temp=input_str[0];
        input_str[0]=input_str[flag];
        input_str[flag]=temp;
        //在进入下一个循环前flag重新初始化
        flag=0;
        //格式输出
        for(int j=0; jif(j==n-1)
                cout<else
                cout<" ";
        }

        delete input_str;
    }
    return 0;
}

你可能感兴趣的:(【ACM刷题】)