C++序设计,已知数组a[10]={17,12,5,36,55,19,3,9,25,41},使用交换法,使用指针方式对该数组进行降序排序,并输出排序结果(通过移动指针进行输出)。
时间: 2024-04-30 19:24:59 浏览: 234
C++将数字从键盘读入数组并统计数字出现的次数,元素从大到小的顺序排序
以下是使用指针方式对该数组进行降序排序的 C++ 代码:
```cpp
#include <iostream>
using namespace std;
int main() {
int a[10] = {17, 12, 5, 36, 55, 19, 3, 9, 25, 41};
int *ptr;
int temp;
// 冒泡排序
for (int i = 0; i < 9; i++) {
ptr = a;
for (int j = 0; j < 9 - i; j++) {
if (*ptr < *(ptr + 1)) {
temp = *ptr;
*ptr = *(ptr + 1);
*(ptr + 1) = temp;
}
ptr++;
}
}
// 输出排序结果
ptr = a;
for (int i = 0; i < 10; i++) {
cout << *ptr << " ";
ptr++;
}
return 0;
}
```
输出结果为:
```
55 41 36 25 19 17 12 9 5 3
```
解释一下代码:
首先定义了一个整型数组 `a`,长度为 10。然后定义了一个指向整型的指针 `ptr` 和一个整型变量 `temp`。
接下来是冒泡排序的过程。外层循环控制比较的次数,也就是需要比较的轮数;内层循环控制每一轮比较的次数,也就是每一轮需要比较的元素个数。每一次比较时,如果前一个元素比后一个元素小,则交换它们的值。
最后是输出排序结果的过程。同样使用指针 `ptr` 遍历整个数组,输出每一个元素的值。
阅读全文