已知长度为n的线性表a采用顺序存储结构,设计一个算法,使得该线性表中的数据元素是逆序重新排列,做一个c语言
时间: 2024-09-24 09:13:01 浏览: 33
为了在C语言中对长度为n的顺序存储线性表a进行逆序排列,你可以使用两个指针i(起始位置)和j(结束位置),然后交换它们指向的数据,并逐步向中间移动,直到它们相遇。下面是一个简单的示例算法:
```c
#include <stdio.h>
void reverseArray(int a[], int n) {
int i = 0; // 起始指针
int j = n - 1; // 结束指针
while (i < j) { // 当i小于j时继续循环
// 交换a[i]和a[j]
int temp = a[i];
a[i] = a[j];
a[j] = temp;
// 移动指针
i++;
j--;
}
}
// 示例数组
int main() {
int size;
printf("Enter the length of the array: ");
scanf("%d", &size);
int arr[size]; // 假设用户输入了正确的大小
printf("Enter elements of the array:\n");
for (int i = 0; i < size; i++) {
scanf("%d", &arr[i]);
}
// 反转数组
reverseArray(arr, size);
printf("Reversed array is:\n");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在这个代码片段中,`reverseArray`函数接收一个整数数组和它的长度,通过两个指针遍历并交换元素实现了逆序操作。在`main`函数中,首先获取数组的长度和元素值,然后调用这个函数并打印出结果。