C语言编程实现:输入n个整数(n由用户输入,不超过100),并放入数组中,将数组元素逆序存放,并输出逆序前和逆序后数组元素的值,要求用指针实现对数组进行访问。
时间: 2025-06-11 07:00:27 浏览: 14
在C语言中,你可以使用指针来实现数组的逆序操作。首先,你需要动态分配足够的内存存储n个整数,然后通过两个指针,一个指向数组开始,另一个指向数组结束,交换它们指向的元素,逐个向中间移动,直到两个指针相遇。以下是简单的步骤:
1. 首先,让用户输入n并检查是否小于等于100。
2. 分配一个大小为n的动态数组。
3. 使用`scanf`函数读取用户输入的n个整数存入数组。
4. 初始化两个指针,一个`start`指向数组的第一个元素,一个`end`指向最后一个元素。
5. 当`start`小于`end`时,执行以下操作:
a. 交换`*start`和`*end`的值,即`*(start++) = *(end--)`。
6. 继续上述过程,直至`start`大于等于`end`,表示所有元素已交换完成。
7. 输出逆序前和后的数组元素。
下面是一个简化的示例代码:
```c
#include <stdio.h>
#define MAX_SIZE 100
// 指针逆序数组的函数
void reverse(int *arr, int n) {
int start = 0;
int end = n - 1;
while (start < end) {
// 交换元素
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
// 移动指针
start++;
end--;
}
}
int main() {
int n, i;
printf("请输入数组长度(不超过100):");
scanf("%d", &n);
if (n > MAX_SIZE) {
printf("数组长度超出范围!\n");
return 1;
}
// 动态分配数组
int *arr = (int*)malloc(n * sizeof(int));
if (!arr) {
printf("内存分配失败!\n");
return 1;
}
printf("请输入 %d 个整数:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 逆序数组
reverse(arr, n);
// 输出原数组和逆序后的数组
printf("原始数组:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
printf("逆序数组:");
for (i = n - 1; i >= 0; i--) { // 注意是从后往前打印
printf("%d ", arr[i]);
}
printf("\n");
free(arr); // 释放内存
return 0;
}
```
阅读全文
相关推荐











