C++ 3个整数从大到小输出, 指针变量

C++ 指针与函数:实现三数排序
本文介绍了一种使用C++指针进行三个整数排序的方法。通过定义指针变量并传递地址,实现了在不返回值的情况下,直接修改原始变量的值。文章展示了如何通过指针调用函数来比较和交换三个整数的位置,最终按从小到大的顺序输出。

#include<iostream>
using namespace std;
int main()
{
	void exchange(int *q1,int *q2,int *q3);  //声明函数
	int a,b,c,*p1,*p2,*p3;                        //定义指针变量
	cin>>a>>b>>c;
	p1=&a;
	p2=&b;                                     //取ABC地址给p1,p2,p3.
	p3=&c;
	exchange(p1,p2,p3);
	cout<<a<<" "<<b<<" "<<c<<endl;
}
void exchange(int *q1,int *q2,int *q3)                  //int * 型
{
	void swap(int *r1,int *r2);
	if(*q1<*q2) swap(q1,q2);
	if(*q2<*q3) swap(q2,q3);
	if(*q1<*q3) swap(q1,q3);

}

void swap(int *r1,int *r2)
{
	int temp;
	temp=*r1;                                            //变量值互换
	*r1=*r2;
	*r2=temp;

}

 

好的,下面我将向您展示如何利用 C++ 中的指针变量整数进行从小到的排序并输出。 ### 使用指针实现整数排序 ```cpp #include <iostream> using namespace std; void sortThree(int* a, int* b, int* c) { // 比较 *a 和 *b,并交换如果必要 if (*a > *b) swap(*a, *b); // 现在保证了 *a <= *b // 再次比较调整后的 *a、*c if (*a > *c) swap(*a, *c); // 此时最小值已经在 *a 中 // 最后再检查中间位置是否正确 (即*b 和 *c) if (*b > *c) swap(*b, *c); } int main() { int x = 5; int y = 3; int z = 8; cout << "原始数据:" << endl; cout << "x = " << x << ", "; cout << "y = " << y << ", "; cout << "z = " << z << endl; sortThree(&x, &y, &z); cout << "\n排序后结果:" << endl; cout << "*a(通过引用传递) = " << x << ", "; cout << "*b(通过引用传递)= " << y << ", "; cout << "*c(通过引用传递) = " << z << endl; return 0; } ``` 上述代码实现了以下功能: 1. 定义了一个名为 `sortThree` 的函数接收个指向整型数值的指针作为输入参数; 2. 函数内部首先会对比前两个数小然后按需互换它们的位置使得第一个元素总是不于第二个; 3. 接着拿排好序的第一个和第个继续做同样的操作确保第一个是最小值; 4. 对剩下未确定顺序的一对再次执行一次两两之间的比对完成最终整体升序排列; 5. 主程序部分演示了实际调用这个函数的过程以及打印出原初及处理过后的数组内容; 请注意此例子展示了简单直接的方式去理解如何使用指针对几个已知量做基本操作如读取修改等。而真实场景下对于更复杂的结构体或类成员访问则需要更多注意点比如解引运算符的应用规则等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值