编程读入若干整数(不超过50个)到数组中,然后倒序输出,遍历数组时用指针实现简单操作
时间: 2024-11-20 22:37:41 浏览: 6
要实现这个功能,你可以使用C语言中的动态内存分配、指针以及循环结构。首先,我们需要定义一个足够大的动态数组来存储这些整数。接着,我们从用户那里获取输入并存储在数组中。最后,我们通过指针遍历数组并将元素倒序输出。
以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_INTS 50
int main() {
int *arr; // 定义一个指向整数的指针
int num, i;
// 动态分配数组空间
arr = (int*)malloc(MAX_INTS * sizeof(int));
if (!arr) { // 检查内存是否成功分配
printf("Memory allocation failed.\n");
return 1;
}
// 读取整数并存储到数组中
printf("Enter up to %d integers separated by spaces:\n", MAX_INTS - 1);
for (i = 0; i < MAX_INTS && scanf("%d", &num); ++i) {
arr[i] = num;
}
// 如果没有达到最大数量或有输入错误,确保关闭文件流
fclose(stdin);
// 遍历数组并倒序输出
printf("Numbers in reverse order:\n");
for (i = MAX_INTS - 1; i >= 0; --i) {
printf("%d ", *(arr + i)); // 使用指针访问数组元素
}
// 释放动态分配的内存
free(arr);
return 0;
}
```
在这个例子中:
1. `malloc`用于动态分配数组空间,`sizeof(int)`计算每个整数所占字节数。
2. 用户输入的整数被依次存储在数组中,直到遇到空格或达到最大数量。
3. 当倒序输出数组时,我们使用指针`*(arr + i)`间接访问数组元素,`arr + i`返回的是数组下标为`i`的位置的地址。
阅读全文