c++程序设计,已知数组a[10]={17, 12, 5, 36, 55, 19, 3, 9, 25, 41},使用指针方式对该数组进行降序排序,并输出排序结果(通过移动指针进行输出)。 注:排序方法采用交换法(冒泡排序)或简单选择法
时间: 2023-09-17 07:07:25 浏览: 91
好的,这是一个经典的排序问题。以下是使用指针的冒泡排序代码示例:
```c++
#include <iostream>
using namespace std;
int main() {
int a[10] = {17, 12, 5, 36, 55, 19, 3, 9, 25, 41};
int *p = a;
int temp;
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9-i; j++) {
if (*(p+j) < *(p+j+1)) {
temp = *(p+j);
*(p+j) = *(p+j+1);
*(p+j+1) = temp;
}
}
}
for (int i = 0; i < 10; i++) {
cout << *(p+i) << " ";
}
return 0;
}
```
这里使用指针p来遍历数组a,通过指针方式交换数组元素。
如果使用选择排序,代码也类似:
```c++
#include <iostream>
using namespace std;
int main() {
int a[10] = {17, 12, 5, 36, 55, 19, 3, 9, 25, 41};
int *p = a;
int temp;
for (int i = 0; i < 9; i++) {
int max_index = i;
for (int j = i+1; j < 10; j++) {
if (*(p+j) > *(p+max_index)) {
max_index = j;
}
}
temp = *(p+i);
*(p+i) = *(p+max_index);
*(p+max_index) = temp;
}
for (int i = 0; i < 10; i++) {
cout << *(p+i) << " ";
}
return 0;
}
```
这里使用指针p来遍历数组a,每次找到最大值的下标max_index,然后将其与第i个元素交换位置。
阅读全文