7-17 部分逆置 (10 分)
输入n个整数,把第i个到第j个之间的全部元素进行逆置,并输出逆置后的n个数。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试先输入三个整数n,i,j(0 < n <= 100,1 ≤ i < j ≤ n),再输入n个整数。
输出格式:
对于每组测试数据,输出逆置后的n个数,要求每两个数据之间留一个空格。
输入样例:
1
7 2 6 11 22 33 44 55 66 77
输出样例:
11 66 55 44 33 22 77
#include<iostream>
using namespace std;
int main() {
int t, i, j, k, x, n, a[105];
cin >> t;
for(k = 1; k <= t; k++) {
cin >> n >> i >> j;
for(x = 1; x <= n; x++) {
cin >> a[x];
}
for(x = 1; x < i; x++) {
cout << a[x] << " ";
}
for(x = j; x >= i; x--) {
cout << a[x] << " ";
}
for(x = n; x > j; x--) {
cout<<a[x]<<" ";
}
cout<<endl;
}
return 0;
}
实现是定一个T 然后输入
while T减减
之后定一个n长度的数组
输入i和j 输入数组 遍历数组for循环k
如果k大于等于i小于等与j 就打印j减k加i
/*
将一组整数逆置:输入n(n<=10)及n个整数,将这组整数逆置输出
*/
#include <stdio.h>
int main(void)
{
int n[10];
int i=0;
while(i<10)
{
printf("请输入第%d个数:\n",i+1);
scanf("%d",&n[i]);
i++;
}
printf("倒叙输出:\n");
for(i=9;i>=0;i--)//倒数计数方式
{
printf("%-4d",n[i]);//+表示左边补空格,-表示右边补上空格
}
return 0;
}