输入3个整数,要求设3个指针变量p1、p2、p3,使p1指向3个数中的最大者,p2指向次大者,p3指向最小者,然后按由大到小的顺序输出这3个数。 输入格式: 测试数据有多组,处理到文件尾。每组测试数据输入3个整数。 输出格式: 对于每组测试数据,按从大到小的顺序输出这3个整数,每两个整数之间留一个空格。
时间: 2023-12-10 07:42:59 浏览: 83
以下是一种实现方式:
```c++
#include <iostream>
using namespace std;
void sort(int* p1, int* p2, int* p3) {
int temp;
if (*p1 < *p2) {
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
if (*p1 < *p3) {
temp = *p1;
*p1 = *p3;
*p3 = temp;
}
if (*p2 < *p3) {
temp = *p2;
*p2 = *p3;
*p3 = temp;
}
}
int main() {
int a, b, c;
while (cin >> a >> b >> c) {
int *p1 = &a, *p2 = &b, *p3 = &c;
sort(p1, p2, p3);
cout << *p1 << " " << *p2 << " " << *p3 << endl;
}
return 0;
}
```
首先定义了一个 `sort` 函数,该函数接收3个指针参数,分别指向3个整数。在函数内部,使用冒泡排序的思想,将这3个数按从大到小的顺序排列,最后三个指针分别指向排列后的最大值、次大值和最小值。
在 `main` 函数中,循环读入测试数据,每次读入后将3个整数的地址分别赋值给3个指针变量,然后调用 `sort` 函数进行排序,最后按照从大到小的顺序依次输出这3个整数即可。
阅读全文