PTA 7-301 sdut- C语言实验-数组逆序(数组移位)
分数 16
作者 马新娟
单位 山东理工大学
有n个整数,使其最后m个数变成最前面的m个数,其他各数顺序向后移m(m < n < 100)个位置。
输入格式:
输入数据有2行,第一行的第一个数为n,后面是n个整数,第二行整数m。
输出格式:
按先后顺序输出n个整数。
输入样例:
5 1 2 3 4 5
2
输出样例:
在这里给出相应的输出。例如:
4 5 1 2 3
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include <stdio.h>
int main(){
int n, m, Arr[1000];
int t;
scanf("%d", &n);
//遍历数组
for(int i = 0; i < n; i++){
scanf("%d", &Arr[i]);
}
scanf("%d", &m);
for(int j = 1; j <= m; j++){
t = Arr[n-1]; //先保存最后一个数;
for(int i = n; i >= 0; i--){ //数组移动
Arr[i] = Arr[i-1];
}
Arr[0] = t; //插入保存好的数据;
}
for(int i = 0; i < n; i++){ //输出
if(i == 0)
printf("%d", Arr[i]);
else
printf(" %d", Arr[i]);
}
return 0;
}
解题思路:
step1:保存最后一个数
step2:移动数组
step3:插入保存的数据
归属知识点:
数组
循环结构