.用指针变量实现输入10个整数存入一维数组,再按逆序重新存放后输出。
时间: 2024-02-16 18:03:01 浏览: 105
好的,这是一个 C 语言的问题。以下是代码实现:
```c
#include <stdio.h>
int main() {
int arr[10], temp;
int *ptr1, *ptr2;
printf("请输入10个整数:\n");
for (ptr1 = arr; ptr1 < arr + 10; ptr1++) {
scanf("%d", ptr1);
}
ptr1 = arr;
ptr2 = arr + 9;
while (ptr1 < ptr2) {
temp = *ptr1;
*ptr1 = *ptr2;
*ptr2 = temp;
ptr1++;
ptr2--;
}
printf("逆序输出数组:\n");
for (ptr1 = arr; ptr1 < arr + 10; ptr1++) {
printf("%d ", *ptr1);
}
return 0;
}
```
代码解释:
- 首先定义一个长度为 10 的整数数组 `arr` 和一个整数变量 `temp`。
- 然后定义两个指向整型的指针变量 `ptr1` 和 `ptr2`,分别指向数组的首元素和尾元素。
- 在 `for` 循环中,通过指针变量 `ptr1` 依次输入 10 个整数。
- 然后将 `ptr1` 重新指向数组的首元素,将 `ptr2` 指向数组的尾元素。
- 在 `while` 循环中,交换 `ptr1` 和 `ptr2` 所指向的元素,并将 `ptr1` 往后移动一位,`ptr2` 往前移动一位,直到 `ptr1` 大于等于 `ptr2`。
- 最后,在 `for` 循环中,通过指针变量 `ptr1` 依次输出逆序后的数组。
运行结果:
```
请输入10个整数:
1 2 3 4 5 6 7 8 9 10
逆序输出数组:
10 9 8 7 6 5 4 3 2 1
```
阅读全文