有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,用c语言
时间: 2023-12-20 16:49:06 浏览: 62
C语言程序设计100个经典例子-含答案.pdf
实现。
思路:先将后面m个数保存下来,再将前面n-m个数向后移动m个位置,最后将保存下来的m个数放到最前面。
代码如下:
```c
#include <stdio.h>
#define MAX_N 1000
int main() {
int n, m, a[MAX_N];
printf("请输入n和m:");
scanf("%d%d", &n, &m);
printf("请输入%d个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
// 保存后面m个数
int temp[MAX_N];
for (int i = n - m; i < n; i++) {
temp[i - (n - m)] = a[i];
}
// 将前面n-m个数向后移动m个位置
for (int i = n - m - 1; i >= 0; i--) {
a[i + m] = a[i];
}
// 将保存下来的m个数放到最前面
for (int i = 0; i < m; i++) {
a[i] = temp[i];
}
// 输出移动后的结果
printf("移动后的结果为:");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
阅读全文