变换数组元素
Problem Description 变换的内容如下:
1)将长度为10的数组中的元素按升序进行排序
2)将数组的前n个元素换到数组的最后面(0 < n < 10)
Input
输入数据首先包含一个整数T,表示测试实例的个数,然后是T行测试数据。每行测试数据包括1个正整数n,以及数组的10个原始数据。
Output
对于每组测试数据。输出变换后的全部数组元素。元素之间以空格分隔,最后一个数据之后没有空格。
Sample Input
1
2 34 37 98 23 24 45 76 89 34 68
Sample Output
34 34 37 45 68 76 89 98 23 24
Hint
排序后的结果是:23 24 34 34 37 45 68 76 89 98
将数组的前2个元素换到数组的最后面,最终结果:34 34 37 45 68 76 89 98 23 24
#include<iostream>
using namespace std;
int main()
{
int a[100],i,t,n;
cin>>t;
for(i=0;i<t;i++)
{
cin>>n;
for(int j=0;j<10;j++)
{
cin>>a[j];
}
for(int k=0;k<9;k++)
{
int minpos=k;
for(int e=k+1;e<10;e++)
{
if(a[e]<a[minpos]) minpos=e;
}
int t=a[k];a[k]=a[minpos];a[minpos]=t;
}
for(i=n;i<10;i++)
{
cout<<a[i]<<" ";
}
for(i=0;i<n;i++)
{
if(i==n-1)
cout<<a[i];
else
cout<<a[i]<<" ";
}
cout<<endl;
}
return 0;
}
为什么我同学用这个程序时只能进行一组测试,实在是找不到问题在哪,求教给位大神。