将n个整数按输入顺序的逆序排列,要求应用带指针参数的函数实现
时间: 2023-06-05 12:48:05 浏览: 235
可以使用一个指针数组,将输入的n个整数存储到数组中,然后使用指针参数的函数实现逆序排列。具体实现如下:
void reverse(int *arr[], int n){
int *temp;
for(int i=; i<n/2; i++){
temp = arr[i];
arr[i] = arr[n-i-1];
arr[n-i-1] = temp;
}
}
int main(){
int n;
scanf("%d", &n);
int arr[n];
int *ptr[n];
for(int i=; i<n; i++){
scanf("%d", &arr[i]);
ptr[i] = &arr[i];
}
reverse(ptr, n);
for(int i=; i<n; i++){
printf("%d ", *ptr[i]);
}
return ;
}
在主函数中,首先输入n和n个整数,然后将每个整数的地址存储到指针数组ptr中。接着调用reverse函数,将ptr数组中的元素逆序排列。最后输出排列后的结果。
相关问题
c++将n个整数按输入顺序的逆序排列,要求应用带指针参数的函数实现
题目意思是要求用 C++ 将 n 个整数按输入顺序的相反顺序排列,要求应用带指针参数的函数实现。
例如,输入为 1 2 3 4 5,输出为 5 4 3 2 1。
实现的函数可以用指针参数指向要排序的数组,同时可以再定义一个指向 int 类型的变量 n,表示要排序的整数个数。在函数内部,可以使用循环语句按照输入顺序将数组元素复制到一个新的数组中,再循环将新数组的元素按相反顺序复制回原数组中。
具体代码实现为:
void reverseArray(int* arr, int n) {
int *newArr = new int[n]; // 定义一个新的数组
for (int i = 0; i < n; i++) {
newArr[i] = arr[i]; // 将元素按输入顺序复制到新数组中
}
for (int i = 0; i < n; i++) {
arr[i] = newArr[n - 1 - i]; // 将新数组的相反顺序元素复制回原数组中
}
delete [] newArr; // 释放新数组的内存
}
调用示例:
int n = 5;
int arr[5] = {1, 2, 3, 4, 5};
reverseArray(arr, n);
for (int i = 0; i < n; i++) {
cout << arr[i] << " "; // 输出 5 4 3 2 1
}
C++ 将n个整数按输入顺序的逆序排列,要求应用带指针参数的函数实现。
可以使用一个函数来实现将n个整数按输入顺序的逆序排列,可以使用指针参数来传递数组并进行修改,函数的原型如下:
```c++
void reverse(int* arr, int n);
```
其中,arr是指向整数数组的指针,n是整数数组的大小。
函数的实现如下:
```c++
void reverse(int* arr, int n) {
int* start = arr;
int* end = arr + n - 1;
while (start < end) {
int temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
```
该函数使用两个指针start和end,分别指向数组的开头和结尾,然后交换它们所指向的值,直到start指向的位置超过或等于end指向的位置。
可以在主函数中调用该函数来实现将n个整数按输入顺序的逆序排列,如下所示:
```c++
#include <iostream>
using namespace std;
void reverse(int* arr, int n);
int main() {
int n;
cout << "请输入整数的个数:";
cin >> n;
int* arr = new int[n];
cout << "请输入" << n << "个整数:";
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
reverse(arr, n);
cout << "逆序排列后的结果为:";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
delete[] arr;
return 0;
}
void reverse(int* arr, int n) {
int* start = arr;
int* end = arr + n - 1;
while (start < end) {
int temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
```
运行程序,输入整数的个数和整数序列,程序将输出逆序排列后的整数序列。
阅读全文