要求:程序调试成功后,提交漂亮、规范的博文作为报告(参考上一任务的模板自行改造)
项目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即可.
自己实现吧。
记住:方案不止这一种。