编写一个函数,用来实现对3个整数按由小到大的顺序排序,并在主函数中调用此函数要求函数的形参用以下两种形式实现(1)使用指针形参(②)使用引用形参
时间: 2024-10-11 17:08:24 浏览: 27
C语言程序设计-编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序;.c
5星 · 资源好评率100%
在C++中,你可以编写一个名为`sortThreeNumbers`的函数,它接受三个整数指针作为参数,然后通过指针操作来排序这三个数字。这里我会提供两个版本的函数,一个是使用指针,另一个是使用引用:
1. 使用指针:
```cpp
void sortThreeNumbers(int* a, int* b, int* c) {
if (*a > *b) {
int temp = *a;
*a = *b;
*b = temp;
}
if (*b > *c) {
int temp = *b;
*b = *c;
*c = temp;
}
if (*a > *b) {
int temp = *a;
*a = *b;
*b = temp;
}
}
// 主函数中调用
int main() {
int numbers[] = {5, 2, 7};
int* numPtrs[3] = {numbers, &numbers[1], &numbers[2]};
sortThreeNumbers(numPtrs[0], numPtrs[1], numPtrs[2]);
// 输出排序后的数组
std::cout << "Sorted array: ";
for (int i : {0, 1, 2}) {
std::cout << *numPtrs[i] << " ";
}
return 0;
}
```
2. 使用引用:
```cpp
void sortThreeNumbers(int& a, int& b, int& c) {
if (a > b) {
int temp = a;
a = b;
b = temp;
}
if (b > c) {
int temp = b;
b = c;
c = temp;
}
if (a > b) {
int temp = a;
a = b;
b = temp;
}
}
// 主函数中调用
int main() {
int numbers[] = {5, 2, 7};
int& numsRef[3] = {numbers[0], numbers[1], numbers[2]};
sortThreeNumbers(numsRef[0], numsRef[1], numsRef[2]);
// 输出排序后的数组
std::cout << "Sorted array: ";
for (int& num : numsRef) {
std::cout << num << " ";
}
return 0;
}
```
这两个例子都展示了如何根据题目要求分别使用指针和引用来传递整数。
阅读全文