课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565


【项目4-指来指去】设计一个程序,利用指针完成下面的工作
(1)下面的程序,输入10 100和100 10,均可以输出max=100 min=10,请补充完整

#include <iostream>
using namespace std;
int main( )
{
	int *p1,*p2,a,b,t;
	cin>>a>>b;
	p1=&a; 
	p2=&b;  
	//下面加入代码,只许用p1,p2和t,不许用a和b,t作为交换时的中间变量

	cout<<"max="<<a<<" min="<<b<<endl;
	return 0;
}

参考解答:

#include <iostream>
using namespace std;
int main( )
{
	int *p1,*p2,a,b,t;
	cin>>a>>b;
	p1=&a; 
	p2=&b;  
	//下面加入代码,只许用p1,p2和t,不许用a和b,t作为交换时的中间变量
	if(*p1<*p2)
	{
		t=*p1;
		*p1=*p2;
		*p2=t;
	}
	cout<<"max="<<a<<" min="<<b<<endl;
	return 0;
}



(2)下面的程序将调用函数进行变量的交换,请设计出交换的函数
#include <iostream>
using namespace std;
int main( )
{
	int a,b;
	cin>>a>>b;
	jiaohuan(&a,&b);  
	cout<<"交换后:a="<<a<<" b="<<b<<endl;
	return 0;
}
//下面定义jiaohuan;  

参考解答

#include <iostream>
using namespace std;
void jiaohuan(int *p1, int *p2);
int main( )
{
	int a,b;
	cin>>a>>b;
	jiaohuan(&a,&b);  
	cout<<"交换后:a="<<a<<" b="<<b<<endl;
	return 0;
}
//下面定义jiaohuan;  
void jiaohuan(int *p1, int *p2)
{
	int t;
	if(*p1<*p2)
	{
		t=*p1;
		*p1=*p2;
		*p2=t;
	}
	return;
}