如何使用C语言编写一个程序,以便将一个包含9个元素的数组内的数据逆序排列,并保持这些元素仍然存储在原始数组中?能否提供相关的源代码示例?
时间: 2024-12-19 15:23:45 浏览: 7
在C语言中,你可以通过两层循环来实现这个功能。外层循环遍历数组的起始位置,内层循环则从数组末尾开始向数组的起始位置移动。当内层循环到达外层循环的当前位置时,两个指针所指向的元素就交换了,实现了逆序排列。
下面是一个简单的示例:
```c
#include <stdio.h>
// 函数声明
void reverse(int arr[], int start, int end);
int main() {
int arr[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; // 初始化一个包含9个元素的数组
int length = sizeof(arr) / sizeof(arr[0]);
printf("原数组前半部分:");
for (int i = 0; i < length / 2; i++) {
printf("%d ", arr[i]);
}
printf("\n");
reverse(arr, 0, length - 1); // 调用函数进行逆序
printf("逆序后的数组:");
for (int i = 0; i < length; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
// 逆序数组的函数
void reverse(int arr[], int start, int end) {
while (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
```
在这个示例中,`reverse`函数接收一个整型数组、起始索引和结束索引作为参数。当起始索引小于结束索引时,不断交换这两个位置的元素,直到整个数组都被遍历过。
阅读全文