输入一批整数,最多 100 个,当输入 0 时,结束输入。将这批整数逆序存放后输出,要求定义三个子函数分别进行数组输入、输出和逆置,并且需要用到变量*p,*n,n
时间: 2024-05-14 09:18:49 浏览: 199
下面是代码实现:
```c
#include <stdio.h>
void input(int arr[], int *n);
void reverse(int arr[], int n);
void output(int arr[], int n);
int main() {
int arr[100];
int n = 0;
input(arr, &n);
reverse(arr, n);
output(arr, n);
return 0;
}
void input(int arr[], int *n) {
printf("请输入整数,以 0 结束:\n");
while (1) {
scanf("%d", &arr[*n]);
if (arr[*n] == 0) {
break;
}
(*n)++;
}
}
void reverse(int arr[], int n) {
int i, j;
for (i = 0, j = n - 1; i < j; i++, j--) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
void output(int arr[], int n) {
printf("逆序输出如下:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
```
函数 `input()` 用于输入整数,它利用指针 `*n` 来记录输入的整数个数,每输入一个整数,就将 `*n` 加 1。当输入 0 时,输入结束。
函数 `reverse()` 用于逆置数组,它利用两个指针 `i` 和 `j` 分别指向数组的开头和结尾,通过交换它们所指向的元素来逆置数组。
函数 `output()` 用于输出数组,它遍历整个数组,依次输出每个元素。
阅读全文