C语言编程,有n个整数是其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。
时间: 2024-06-14 17:03:24 浏览: 110
以下是C语言实现将前面的数顺序向后移m个位置,最后的m个数变成最前面的m个数的代码:
```c
#include <stdio.h>
#define N 10
int main()
{
int arr[N] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int m = 3;
int temp[m];
for (int i = 0; i < m; i++) {
temp[i] = arr[i];
}
for (int i = m; i < N; i++) {
arr[i - m] = arr[i];
}
for (int i = 0; i < m; i++) {
arr[N - m + i] = temp[i];
}
for (int i = 0; i < N; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
运行结果为:4 5 6 7 8 9 10 1 2 3
相关问题
用c语言编程有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
可以使用一个循环来实现,每次往后移动一个数,循环m次即可。具体的实现代码如下:
```c
#include <stdio.h>
void move(int arr[], int n, int m) {
int i, j, temp;
// 将前m个数移到数组末尾
for (i = 0; i < m; i++) {
temp = arr[i];
for (j = i; j < n - 1; j++) {
arr[j] = arr[j + 1];
}
arr[n - 1] = temp;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(int);
int m = 2;
int i;
move(arr, n, m);
// 输出移动后的数组
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
运行结果为:
```
3 4 5 1 2
```
其中,`move` 函数用来实现数组的移动操作,接受三个参数:数组、数组长度和移动的位数。首先将前m个数依次移到数组的末尾,完成一次移动操作。然后再重复m次,即可使前m个数移动到数组的最后m个位置。
c语言:有n个整数,编程使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
可以使用循环移位法来实现这个功能。具体的步骤如下:
1. 将数组的后m个数先暂存到一个临时数组中。
2. 将原数组的前n-m个数依次向后移动m个位置。
3. 将临时数组的m个数依次复制到原数组的前面m个位置。
代码实现如下:
```c
#include <stdio.h>
void move(int arr[], int n, int m) {
int tmp[m];
for (int i = 0; i < m; i++) {
tmp[i] = arr[n - m + i];
}
for (int i = n - m - 1; i >= 0; i--) {
arr[i + m] = arr[i];
}
for (int i = 0; i < m; i++) {
arr[i] = tmp[i];
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = 5, m = 2;
move(arr, n, m);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果为:3 4 5 1 2
阅读全文