zoukankan      html  css  js  c++  java
  • 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即可.
    自己实现吧。
    记住:方案不止这一种。




  • 相关阅读:
    Git Stash用法
    动态设置ImageView的宽高以及位置
    【算法笔记】B1047 编程团体赛
    【算法笔记】B1043 输出PATest
    【算法笔记】B1042 字符统计
    【算法笔记】B1039 到底买不买
    【算法笔记】B1038 统计同成绩学生
    【算法笔记】B1033 旧键盘打字
    【算法笔记】B1029 旧键盘
    【算法笔记】B1048 数字加密
  • 原文地址:https://www.cnblogs.com/hehe520/p/6142686.html
Copyright © 2011-2022 走看看