5.设有一数列, 包含10个数,已按升序排好。现要求编一程序, 它能够把从指定位置开始的n个数按逆序重新排列并输出新的完整数列。进行逆序处理时要求使用指针方法。试编程。 (例如:原数列为2, 4, 6, 8, 10, 12, 14, 16,18, 20, 若要求把从第4个数开始的5个数按逆序重新排列,则得到新数列为2, 4, 6, 16, 14, 12, 10, 8, 18, 20。)
时间: 2023-08-27 15:03:54 浏览: 80
以下是使用指针方法实现从指定位置开始的n个数按逆序重新排列的完整程序:
```c
#include <stdio.h>
void reverse(int *start, int *end);
int main() {
int arr[] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
int n = sizeof(arr) / sizeof(arr[0]);
int start = 3, count = 5;
printf("Original array:\n");
for(int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
reverse(arr + start - 1, arr + start + count - 2);
printf("Reversed array:\n");
for(int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void reverse(int *start, int *end) {
while(start < end) {
int temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
```
我们先定义了一个`reverse`函数,该函数接收两个指针参数,分别指向待逆序处理的起始位置和结束位置。在函数中,我们使用双指针法,交换起始位置和结束位置上的数,并将起始指针向后移动,将结束指针向前移动,直到两个指针相遇。
在`main`函数中,我们定义了一个包含10个数的数组`arr`以及待逆序处理的起始位置`start`和数的个数`count`。我们通过指针运算将起始位置和结束位置的指针传递给`reverse`函数,进行逆序处理。最后,我们输出处理后的完整数组。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)