2.输入10个整数,用一个数组存储,然后调用具有指针参数的函数,实现将其中每个数的位置循环后移4位,在c语言中
时间: 2024-03-26 10:38:04 浏览: 54
C语言实现数组的循环移位的方法示例
可以如下实现:
```c
#include <stdio.h>
void shift(int *arr, int n, int k) {
int temp[k];
// 将前k个数存储到临时数组中
for (int i = 0; i < k; i++) {
temp[i] = arr[i];
}
// 将后n-k个数向前移动k位
for (int i = 0; i < n - k; i++) {
arr[i] = arr[i + k];
}
// 将临时数组中的数添加到数组末尾
for (int i = n - k; i < n; i++) {
arr[i] = temp[i - (n - k)];
}
}
int main() {
int arr[10];
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
shift(arr, 10, 4);
printf("循环后移4位后的结果为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在该程序中,我们首先定义了一个 `shift` 函数,用于将数组中的每个数位置循环后移 `k` 位。该函数接受三个参数,分别为数组指针 `arr`、数组长度 `n` 和移动的位数 `k`。在函数中,我们首先将数组中前 `k` 个数存储到一个临时数组 `temp` 中。然后将数组中后 `n-k` 个数向前移动 `k` 位,最后再将临时数组中的数添加到数组末尾。
在 `main` 函数中,我们首先读入 10 个整数,然后调用 `shift` 函数将数组中的每个数位置循环后移 4 位。最后打印出移动后的结果。
阅读全文