编写函数实现将一个整型一维数组反序存放。要求使用指针作为函数参数, 数组的输入和结果输出在主函数中完成。
时间: 2024-02-24 12:56:16 浏览: 69
下面是实现将一个整型一维数组反序存放的 C 语言函数:
```
void reverse(int *arr, int len) {
int temp;
int i;
for (i = 0; i < len / 2; i++) {
temp = *(arr + i);
*(arr + i) = *(arr + len - i - 1);
*(arr + len - i - 1) = temp;
}
}
```
该函数接受一个指向整型数组的指针 `arr` 和数组的长度 `len`,并将数组反序存放。该函数使用指针操作实现数组元素的交换。在主函数中,可以调用该函数实现数组反序存放,例如:
```
int main() {
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(int);
reverse(arr, len);
int i;
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果为:`5 4 3 2 1`。
相关问题
Prog1.c 【程序设计】 题目:编写函数实现将一个整型一维数组反序存放。要求使用指针作为函数参数, 数组的输入和结果输出在主函数中完成。
下面是实现将一个整型一维数组反序存放的 C 语言函数:
```
void reverse(int *arr, int len) {
int temp;
int i;
for (i = 0; i < len / 2; i++) {
temp = *(arr + i);
*(arr + i) = *(arr + len - i - 1);
*(arr + len - i - 1) = temp;
}
}
```
该函数接受一个指向整型数组的指针 `arr` 和数组的长度 `len`,并将数组反序存放。该函数使用指针操作实现数组元素的交换。在主函数中,可以调用该函数实现数组反序存放,例如:
```
int main() {
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(int);
reverse(arr, len);
int i;
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果为:`5 4 3 2 1`。
(5)利用指针访问数组 通过键盘输入10个整数存入一维数组中,再按照反序输出。
在计算机程序中,可以使用指针来访问数组元素。首先,你需要动态地分配内存来存储这10个整数,并将它们逐个输入到数组中。以下是一个简单的步骤描述:
1. 定义一个整型变量作为数组的起始地址,也就是指针,假设它叫做`arr`。
2. 使用`malloc`函数为数组分配足够的空间,例如`arr = (int*)malloc(10 * sizeof(int))`,这里我们预设了数组大小为10。
3. 创建一个循环,提示用户输入10个整数,并将其存储在数组的位置上,比如`*arr++ = input;`表示把当前的输入值放在指针所指向的位置,然后指针自动向前移动一位。
4. 输入完成后,别忘了初始化最后一个元素,如`arr[9] = input;`。
5. 要按照反序输出数组,你可以创建另一个循环,从数组的末尾开始遍历,每次打印出指针所指向的值,然后指针向数组开头方向移动,直到达到数组的第一个元素。
下面是伪代码形式的示例:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int size = 10;
int *arr = (int*)malloc(size * sizeof(int));
// 获取用户输入并存储在数组中
for (int i = 0; i < size; ++i) {
scanf("%d", arr + i); // 指针加i是因为数组下标从0开始
}
// 反序输出数组
for (int i = size - 1; i >= 0; --i) {
printf("%d ", *(arr + i)); // 输出指针所指向的值
}
free(arr); // 释放已分配的内存
return 0;
}
阅读全文