定义一个长度为10的一维整型数组,并编写三个函数分别实现如下功能: (1)函数input:对数组的各元素实现从键盘输入赋值。 (2)函数output:将数组的所有元素向屏幕打印输出。 (3)函数moveToRight:向右循环移动数组元素 (4)函数moveToLeft:向左循环移动数组元素 (5)函数move:将数组元素向左或向右循环移动m个位置。移动规则为: ● 若m>0,调用moveToRight函数,执行向右循环移动; ● 若m=0,不做任何移动; ● 若m<0,调用moveToLeft函数,执行向左循环移动。 目前已编写完成main函数和move函数,请编程实现input函数、output函数、moveToRight函数和moveToLeft函数。
时间: 2023-11-22 08:53:42 浏览: 74
以下是代码实现:
```c
#include <stdio.h>
void input(int arr[], int len) {
printf("请输入数组的 %d 个元素:\n", len);
for (int i = 0; i < len; i++) {
scanf("%d", &arr[i]);
}
}
void output(int arr[], int len) {
printf("数组的元素为:");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
void moveToRight(int arr[], int len) {
int temp = arr[len - 1];
for (int i = len - 1; i > 0; i--) {
arr[i] = arr[i - 1];
}
arr[0] = temp;
}
void moveToLeft(int arr[], int len) {
int temp = arr[0];
for (int i = 0; i < len - 1; i++) {
arr[i] = arr[i + 1];
}
arr[len - 1] = temp;
}
void move(int arr[], int len, int m) {
if (m > 0) {
for (int i = 0; i < m; i++) {
moveToRight(arr, len);
}
} else if (m < 0) {
for (int i = 0; i < -m; i++) {
moveToLeft(arr, len);
}
}
}
int main() {
int arr[10];
input(arr, 10);
output(arr, 10);
int m;
printf("请输入要移动的位置数:");
scanf("%d", &m);
move(arr, 10, m);
output(arr, 10);
return 0;
}
```
阅读全文