翻转数列的C++实现(急)悬赏30 给出代码即可 无须讲解

来源:百度知道 编辑:UC知道 时间:2024/09/28 11:14:57
描述
最近刚学完数组的使用。好学的Bill在课后进行了他自创编程练习:翻转数列

首先他定义了数列a,大小为n

开始的时候数列的值为 a[1] = 1, a[2] = 2, a[3] = 3 .... a[n] = n

然后,他就将数列的第b项到第e项进行翻转。

比如原来 数列a为 1,2,3,4,5

如果b = 2, e = 4,那么原来 1,2,3,4,5的数组序列就从第2项开始到第4项倒序

结果就变成了 1,4,3,2,5

在上次翻转的基础上,Bill选择新的b,e进行翻转。

这样反复地翻转了m次后

他想问你最后这个数列是怎么样的。

输入
第一行一个整数T表示有T组数据

每组数据第一行为两个整数n,m(0<n< 101, 0< m <100)

n表示数列的大小,m表示翻转的次数

接下来有m行

每行两个整数b,e(0<b<=e<=n)

表示该次翻转的下标范围。

输出
每组输出最后的数列

样例输入
2
3 1
1 3
3 2
1 3
2 3
样例输出
3 2 1
3 1 2

#include<iostream>
using std::cout;
using std::cin;
using std::endl;

int main()
{
int t,n,m,b,e;
int* a;
cin>>t;
int iCount;
int i,j;
int trans;
for(iCount0;iCount<t;iCount++)
{
cin>>n>>m;
a=new int[n];
for(i=0;i<n;i++)
a[i]=i+1;
cin>>b>>e;
for(i=0;i<m;i++)
{
for(j=0;j<(e-b+1)/2;j++)
{
trans=a[e];
a[e]=a[b];
a[b]=a[e];
}
}
for(i=0;i<n;i++)
cout<<a[i];
cout<<endl;
}
}