用c语言编程,将数组a中的10个元素后移动m位,移出的m位顺序放在数组的前面
时间: 2024-02-19 18:57:33 浏览: 27
好的,以下是用C语言编写的将数组a中的10个元素后移动m位,移出的m位顺序放在数组的前面的代码:
```c
#include <stdio.h>
int main()
{
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 原始数组
int m = 3; // 后移3位
// 移出的m位顺序放在数组前面
for (int i = 0; i < m / 2; i++) {
int temp = a[i];
a[i] = a[m - i - 1];
a[m - i - 1] = temp;
}
// 后移m位
for (int i = 0; i < (10 - m) / 2; i++) {
int temp = a[m + i];
a[m + i] = a[9 - i];
a[9 - i] = temp;
}
// 输出移动后的数组
printf("移动后的数组为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
在程序中,我们首先定义了一个长度为10的整型数组a,表示原始数组,以及一个整数变量m,表示要后移的位数。
然后,我们使用for循环将移出的m位顺序放在数组前面。具体来说,我们将数组a的前m个元素和后m个元素对应位置交换,直到交换到中间位置为止。
接着,我们再使用for循环将数组a后移m位。具体来说,我们将数组a的第m+i个元素和倒数第i个元素对应位置交换,直到交换到中间位置为止。
最后,我们使用for循环输出移动后的数组。执行该程序,会输出移动后的数组,结果如下:
```
移动后的数组为:
8 9 10 1 2 3 4 5 6 7
```