有 n 个整数,使前面各数顺序循环后移 m 个位置 (m<n) 编写一个函数实现以上功能,在主函数中输入 n 个整数并输出调整后的 n 个数。
时间: 2024-11-22 08:46:48 浏览: 0
python 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数(示例)
你可以使用 C 语言中的数组操作和循环来实现这个功能。这里是一个简单的示例函数:
```c
#include <stdio.h>
// 函数定义
void rotate(int arr[], int n, int m) {
if (n <= 0 || m >= n || m > 0) {
printf("Invalid input! m must be a positive integer less than n.\n");
return;
}
// 将数组前m个元素移到数组末尾
for (int i = 0; i < m; i++) {
arr[n - i - 1] = arr[i];
}
// 将剩余的元素向前移动
for (int i = n - m; i < n; i++) {
arr[i] = arr[i + m];
}
}
// 主函数
int main() {
int n, m;
printf("Enter the number of integers (n): ");
scanf("%d", &n);
if (n <= 0) {
printf("Error: Invalid number of integers!\n");
return 0;
}
printf("Enter the rotation value (m): ");
scanf("%d", &m);
int arr[n]; // 存储输入的整数
printf("Enter the %d integers:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
rotate(arr, n, m); // 调用旋转函数
printf("Rotated array:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这个程序会提示用户输入整数的数量 `n` 和旋转值 `m`,然后接收 `n` 个整数。`rotate` 函数根据提供的 `m` 值对数组进行循环右移。如果输入不符合要求(如 `m` 大于 `n` 或等于零),它会显示错误消息。
阅读全文