原创作品 转载请注明出处http://blog.csdn.net/always2015/article/details/45477269
这一道题就是找出最小值然后交换的问题,这个问题不难,我的代码里面有详细的注释,我的AC代码如下:
#include <iostream>
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; i<n; i++)
{
cin>>input_str[i];
//将第一个数设为最小值
if(i==0)
min_num=input_str[i];
//求出整列数字的最小值,保存其下标
if(input_str[i]<min_num)
{
min_num=input_str[i];
flag=i;
}
}
//将最小值和第一个元素互换
temp=input_str[0];
input_str[0]=input_str[flag];
input_str[flag]=temp;
//在进入下一个循环前flag重新初始化
flag=0;
//格式输出
for(int j=0; j<n; j++)
{
if(j==n-1)
cout<<input_str[j]<<endl;
else
cout<<input_str[j]<<" ";
}
delete input_str;
}
return 0;
}