c/c++编写程序,假定共有n个整数,储存在一组数组中,则要使前面各数顺序向后移m个位置,并使最后m个数变为最前面的m个数
时间: 2024-05-10 12:14:33 浏览: 86
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
void shift_array(int arr[], int n, int m){
int temp[m];
for(int i=n-m;i<n;i++){
temp[i-n+m] = arr[i];
}
for(int i=n-m-1;i>=0;i--){
arr[i+m] = arr[i];
}
for(int i=0;i<m;i++){
arr[i] = temp[i];
}
}
int main(){
int n, m;
printf("请输入数组长度n和移动的位数m:");
scanf("%d%d", &n, &m);
int arr[n];
printf("请输入%d个整数:", n);
for(int i=0;i<n;i++){
scanf("%d", &arr[i]);
}
shift_array(arr, n, m);
printf("移动后的数组为:");
for(int i=0;i<n;i++){
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
该程序中的shift_array函数实现了数组移动的功能。首先将最后m个数存入一个临时数组中,然后将前面的n-m个数向后移动m个位置,最后将临时数组中的m个数放到数组最前面。在main函数中,先输入数组长度n和移动的位数m,再输入n个整数存入数组中,最后调用shift_array函数进行移动并输出移动后的数组。
阅读全文