设计函数sortArrayByPointer,函数的功能是:使用指针实现对数组a[10]={12,5,13,25, 21,46,34,37,19,2}进行降序排序,将结果存到数组b中并输出。要求:除了定义数组a,b时,任何地方不可以使用下标法(即[]),必须使用指针;不可以改变数组a。
时间: 2024-03-26 09:38:44 浏览: 54
下面是实现sortArrayByPointer函数的代码:
```c++
#include <iostream>
using namespace std;
void sortArrayByPointer(int a[], int b[], int n) {
int *p = a;
int *q = b;
for (int i = 0; i < n; i++) {
*(q+i) = *(p+i);
}
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) {
if (*(q+i) < *(q+j)) {
int temp = *(q+i);
*(q+i) = *(q+j);
*(q+j) = temp;
}
}
}
for (int i = 0; i < n; i++) {
cout << *(q+i) << " ";
}
cout << endl;
}
int main() {
int a[10] = {12,5,13,25,21,46,34,37,19,2};
int b[10];
sortArrayByPointer(a, b, 10);
return 0;
}
```
在sortArrayByPointer函数中,我们首先定义了两个指针p和q,分别指向数组a和b的首元素。接着,我们使用指针将数组a的元素复制到数组b中。然后,我们使用指针实现了冒泡排序,并将结果存放到数组b中。最后,我们使用指针输出数组b的内容。
需要注意的是,在使用指针时,我们必须要注意指针的类型和指针所指向的数据类型。在本题中,我们使用了int类型的指针。
阅读全文