使用指针方式,将数组a中的{3,7,9,11,0,6,7,5,4,2}个整数按相反顺序存放。c语言
时间: 2023-09-04 19:10:06 浏览: 83
好的,这是一个关于反转数组的问题,可以使用指针进行操作。将数组首尾两端的元素交换位置即可实现反转。
下面是一个示例代码:
```c
#include <stdio.h>
void inv(int *x, int n) {
int *pi, *pj, t;
for (pi = x, pj = x + n - 1; pi < pj; pi++, pj--) {
t = *pi;
*pi = *pj;
*pj = t;
}
}
int main() {
int a[] = {3, 7, 9, 11, 0, 6, 7, 5, 4, 2};
int n = sizeof(a) / sizeof(a[0]);
printf("Before inversion:\n");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
inv(a, n);
printf("After inversion:\n");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
Before inversion:
3 7 9 11 0 6 7 5 4 2
After inversion:
2 4 5 7 6 0 11 9 7 3
```
在 `inv` 函数中,使用 `pi` 和 `pj` 两个指针分别指向数组的首尾两端,然后交换它们所指向的元素,直到 `pi >= pj` 为止。在 `main` 函数中,先输出原始数组,然后调用 `inv` 函数进行反转,再输出反转后的数组。
阅读全文