编写一个程序,将长度为n的一维数组各个元素向前移动m个位置,最前面的m个元素变成最后面的m个数c语言
时间: 2023-07-16 22:15:37 浏览: 92
以下是一个将长度为n的一维数组各个元素向前移动m个位置的程序,最前面的m个元素变成最后面的m个数的C语言实现:
```c
#include <stdio.h>
#define MAX_SIZE 100
int main()
{
int arr[MAX_SIZE], n, m, i;
printf("Enter size of array: ");
scanf("%d", &n);
printf("Enter elements in array: ");
for(i=0; i<n; i++)
{
scanf("%d", &arr[i]);
}
printf("Enter number of positions to be shifted: ");
scanf("%d", &m);
// shifting elements to left by m positions
for(i=0; i<m; i++)
{
int temp = arr[0], j;
for(j=0; j<n-1; j++)
{
arr[j] = arr[j+1];
}
arr[j] = temp;
}
// printing the shifted array
printf("\nArray after left shift by %d positions:\n", m);
for(i=0; i<n; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
```
在这个程序中,我们首先输入数组的大小和元素,然后输入要移动的位置数。接下来,我们使用一个嵌套的循环来将数组向左移动m个位置,最后打印移动后的数组。
例如,如果输入数组为{1, 2, 3, 4, 5},并且要向左移动2个位置,则输出将是{3, 4, 5, 1, 2}。
阅读全文