编写函数,将n个数按原来的顺序的逆序排列(要求用指针实现),然后编写主函数完成: ① 输入10个数。 ② 调用此函数进行重排。 ③ 输出重排后的结果。
时间: 2024-03-06 12:51:58 浏览: 22
好的,以下是对应代码,可以供您参考:
```c
#include <stdio.h>
void reverse(int* arr, int n) {
int* p = arr;
int* q = arr + n - 1;
while (p < q) {
int temp = *p;
*p = *q;
*q = temp;
p++;
q--;
}
}
int main() {
int arr[10];
printf("请输入10个数字:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
reverse(arr, 10);
printf("逆序排列后的结果是:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在主函数中,我们首先定义一个长度为10的整型数组 `arr`,然后通过 `for` 循环和 `scanf` 函数输入10个数字。
接着,我们调用 `reverse` 函数对这10个数字进行逆序排列。
最后,我们再次使用 `for` 循环和 `printf` 函数输出逆序排列后的结果。
其中,`reverse` 函数中使用了指针实现逆序排列。我们定义了两个指针 `p` 和 `q`,分别指向数组的第一个元素和最后一个元素。然后,我们使用一个 `while` 循环,不断交换 `p` 和 `q` 指向的元素,直到 `p` 大于等于 `q`。这样,就实现了对数组的逆序排列。
希望这个答案能够帮到您!
阅读全文