题2:有n个整数.使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,见图8.43.+写一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个数。
时间: 2024-06-14 15:05:56 浏览: 81
Java for combinatorial number algorithm.zip_4MJN_M?n_enterbl4_组合
以下是使用指针实现将前面的数顺序向后移 m 个位置,最后的 m 个数变成最前面的 m 个数的C语言代码:
```c
#include <stdio.h>
void moveNumbers(int *arr, int n, int m) {
int *p = arr;
// 将前面的数向后移 m 个位置
for (int i = 0; i < m; i++) {
arr[i] = arr[n - m + i];
}
// 将最后的 m 个数赋值给最前面的 m 个位置
for (int i = m; i < n; i++) {
arr[i] = *(p + i - m);
}
}
int main() {
int n, m;
printf("请输入整数的个数 n:"); scanf("%d", &n);
printf("请输入要移动的位置 m:");
scanf("%d", &m);
int arr[n];
printf("请输入 %d 个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
moveNumbers(arr, n, m);
printf("调整后的 %d 个数为:", n);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
阅读全文