C++第7周任务2-四数中的最大

项目2:输入4个整数,输出其中的最大值。
  要求:程序调试成功后,提交漂亮、规范的博文作为报告(参考上一任务的模板自行改造)
  项目2扩展一(选做):输入4个整数,输出其中的最大值和最小值。
  项目2扩展二(选做):输入4个整数,按从大到小的顺序输出这4个整数。
  (抽出时间将扩展题做一下,在了前面的基础上,只要再多往前再走一点,就会多一分内在的享受。越早有这种体会,感觉会越早出现。这几乎是突破编程障碍的最佳捷径了。在尽快突破的过程中,这一小步是否要走,意义非凡。)

【参考解答】
解答一:分别求出两对数大值后,大值间比较出大值

#include <iostream>		
using namespace std;	
int main( )
{
	int a,b,c,d,max1,max2,max;	
	cout<<"请输入四个数值:"; 
	cin>>a>>b>>c>>d;
	//先求出a和b的大值
	if(a>b)
		max1=a;
	else
		max1=b;


	//再求出c和d的大值
	if(c>d)
		max2=c;
	else
		max2=d;


	//两个大值中的大值为最后的大值
	if(max1>max2)
		max=max1;
	else
		max=max2;
	cout<<"最大值是: "<<max<<"\n";
	return 0;	
}

解答二:逐个比较,得到最大值

#include <iostream>		
using namespace std;	
int main( )
{
	int a,b,c,d,max;	
	cout<<"请输入四个数值:"; 
	cin>>a>>b>>c>>d;
	max=a;   //未进行比较前,暂认为a就是最大的
	if(max<b)  //如果b更大,当然最最大的就应该被赋值为b
		max=b;
	if(max<c)  //同理
		max=c;
	if(max<d)  //亦然
		max=d;
	cout<<"最大值是: "<<max<<"\n";
	return 0;	
}

解答三:采用交换的思路

#include <iostream>		
using namespace std;	
int main( )
{
	int a,b,c,d,t;	
	cout<<"请输入四个数值:"; 
	cin>>a>>b>>c>>d;
	//经过下面的比较和可能进行的交换,a将不比b小
	if(a<b)
	{  
		t=a;  
		a=b;  
		b=t;  
	}  
	//经过下面的比较和可能进行的交换,c将不比d小
	if(c<d)
	{
		t=c;
		c=d;
		d=t;
	}
	//经过下面的比较和可能进行的交换,a将不比c小,为4个数中的最大值
	if(a<c)
	{
		t=a;
		a=c;
		c=t;
	}
	cout<<"最大值是: "<<a<<"\n";
	return 0;	
}

解答四:不引入新的变量也可以

#include <iostream>		
using namespace std;	
int main( )
{
	int a,b,c,d;	
	cout<<"请输入四个数值:"; 
	cin>>a>>b>>c>>d;
	//经过下面的比较和可能进行的赋值,a将是a和b间的大值
	if(a<b)
		a=b; 
	//经过下面的比较和可能进行的赋值,c将是c和d间的大值
	if(c<d)
		c=d;
	//经过下面的比较和可能进行的赋值,a将是a和c间的大值,也就是这四个数中的最大值
	if(a<c)
		a=c;
	cout<<"最大值是: "<<a<<"\n";
	return 0;	
}

解答五:其实,思路还有很多,就不只是解答五了,进一步的学习,我们将追求不仅能做出来,还能够在其中找到“好”的方案云解决。期待你设计出更多样的程序……

【项目2扩展一(选做)提示】
任务要求:输入4个整数,输出其中的最大值和最小值。
思路:可以采用与上面近似的思路完成。其中解答四改变了原有的值,不可取(,但可以改造)。
下面的解答在解答三的基础上进行了扩展,其他方案请同学们自行设计。

#include <iostream>		
using namespace std;	
int main( )
{
	int a,b,c,d,t;	
	cout<<"请输入四个数值:"; 
	cin>>a>>b>>c>>d;
	//经过下面的比较和可能进行的交换,a将不比b小
	if(a<b)
	{  
		t=a;  
		a=b;  
		b=t;  
	}  
	//经过下面的比较和可能进行的交换,c将不比d小
	if(c<d)
	{
		t=c;
		c=d;
		d=t;
	}
	//经过下面的比较和可能进行的赋值,a将不比c小,为4个数中的最大值
	if(a<c)
	{
		t=a;
		a=c;
		c=t;
	}
	//在两个小值,即b和d间,经过下面的比较和可能的交换,d将是小者,也是4个数中的小者
	if(b<d)
	{
		t=b;
		b=d;
		d=t;
	}
	cout<<"最大值是"<<a<<", 最小值是"<<d<<"\n";
	return 0;	
}

【项目2扩展二(选做)提示】
要求:输入4个整数,按从大到小的顺序输出这4个整数。
可以这样来:找出4数中最大的,保存在a中;其余3数中最大的,保存在b中;剩余两个再比较、交换,使c比d大,输出a, b, c, d即可.
自己实现吧。
记住:方案不止这一种。

原文链接: https://www.cnblogs.com/hehe520/archive/2012/10/11/6142686.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++第7周任务2-四数中的最大

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/65501

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 上午11:51
下一篇 2023年2月9日 上午11:51

相关推荐