将一个一堆数组中的数按逆序重新存放
时间: 2023-10-25 20:10:12 浏览: 88
要将一个数组中的数按逆序重新存放,可以使用双指针的方法。定义两个指针,分别指向数组的头部和尾部,然后交换它们所指向的元素,不断移动指针,直到头指针大于等于尾指针为止。以下是示例代码:
```
void reverseArray(int arr[], int length) {
int i = 0;
int j = length - 1;
while (i < j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++;
j--;
}
}
```
相关问题
使用c语言,在一堆数组中找出值最小的元素,并将数组中的元素按逆序重新存放后输出
可以使用以下代码实现:
```c
#include <stdio.h>
int main() {
int arr[100], n, i, min, temp;
// 读入数组长度和元素
printf("Enter the length of array: ");
scanf("%d", &n);
printf("Enter the elements of array: ");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 找到最小元素
min = arr[0];
for (i = 1; i < n; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
// 将数组按逆序重新存放
for (i = 0; i < n / 2; i++) {
temp = arr[i];
arr[i] = arr[n - i - 1];
arr[n - i - 1] = temp;
}
// 输出结果
printf("The minimum element of array is: %d\n", min);
printf("The array in reverse order is: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
代码先读入数组长度和元素,然后找到数组中的最小元素。接着将数组按逆序重新存放,最后输出结果。
编写程序,输入n个整数存入一维数组,再按逆序重新存放后再输出。(用指针实现)
好的,您的第一个问题需要使用指针实现逆序存储和输出一个一维数组中的n个整数,我可以提供一个示例代码给您参考:
```c++
#include <iostream>
using namespace std;
void reverse_array(int* arr, int n) {
// 声明两个指针分别指向数组首尾,交换它们的值
int *p_begin = arr, *p_end = arr + n - 1;
while(p_begin < p_end) {
int temp = *p_begin;
*p_begin = *p_end;
*p_end = temp;
p_begin++;
p_end--;
}
}
int main() {
// 用户输入n个整数,存入一维数组
int n;
cout << "请输入n的值:" << endl;
cin >> n;
int* numArr = new int[n];
cout << "请依次输入" << n << "个整数:" << endl;
for(int i = 0; i < n; i++) {
cin >> numArr[i];
}
// 调用reverse_array函数实现逆序存储
reverse_array(numArr, n);
// 输出逆序存储后的数组
cout << "逆序存储后的数组为:" << endl;
for(int i = 0; i < n; i++) {
cout << numArr[i] << " ";
}
cout << endl;
// 释放堆空间
delete []numArr;
return 0;
}
```
当用户输入n和n个整数后,将数组指针传入reverse_array函数中进行逆序存储,最后再输出逆序存储后的数组。
希望这个示例代码能够帮到您,如果您还有其他问题,欢迎继续提问!
阅读全文