利用数组把给定一组整数保存起来,然后利用指针实现对数组中的数循环移动。假定共有n个整数,则要使前面各数顺序向后移m个位置,而最后m个数变成最前面的m个数。
时间: 2023-06-06 18:06:48 浏览: 93
python 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数(示例)
可以使用如下代码实现:
```c
#include <stdio.h>
#define MAX 100
void reverse(int *nums, int start, int end) {
int temp;
while (start < end) {
temp = nums[start];
nums[start] = nums[end];
nums[end] = temp;
start++;
end--;
}
}
void rotate(int *nums, int n, int m) {
m %= n;
reverse(nums, 0, n - 1);
reverse(nums, 0, m - 1);
reverse(nums, m, n - 1);
}
int main() {
int n, m, nums[MAX];
printf("请输入整数个数n: ");
scanf("%d", &n);
printf("请输入循环移动的位数m: ");
scanf("%d", &m);
printf("请输入%d个整数:\n", n);
for (int i = 0; i < n; ++i) {
scanf("%d", &nums[i]);
}
rotate(nums, n, m);
printf("循环移动%d位后的数组:\n", m);
for (int i = 0; i < n; ++i) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
```
运行结果:
```
请输入整数个数n: 7
请输入循环移动的位数m: 3
请输入7个整数:
1 2 3 4 5 6 7
循环移动3位后的数组:
5 6 7 1 2 3 4
```
阅读全文