习题3: 输入3个整数,输出其中的最大值。
样例输入:123 345 62
样例输出:最大值为:345
#include <iostream>
using namespace std;
int main( )
{
int a,b,c,max;
cout<<"请输入3个数值:";
cin>>a>>b>>c;
//先求出a和b的大值
if(a>b)
max=a;
else
max=b;
//再求出c和max的大值
if(c>max)
max=c;
cout<<"最大值是: "<<max<<endl;
return 0;
}
习题4: 输入3个整数,输出其中的最大值和最小值。
#include <iostream>
using namespace std;
int main( )
{
int a,b,c,max,min;
cout<<"请输入3个数值:";
cin>>a>>b>>c;
//先求出a和b的大、小值
if(a > b)
max = a, min = b;
else
max = b, min = a;
//再求出c和max的大值,c和min的小值
if(c > max)
max = c;
if (c < min)
min = c;
cout<<"最大值是: "<<max<<", 最小值是: "<<min<<endl;
return 0;
}
习题4: 输入4个整数,输出其中的最大值。
解法1:分别求出两对数大值后,大值间比较出大值
#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<<endl; return 0; }
解法2:逐个比较,得到最大值
#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<<endl; return 0; }
解法3:采用交换的思想
#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<<endl; return 0; }
解法4:不用引入新的变量一样可以得到答案,不过自己的明白那个是最大或最小
#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<<endl; return 0; }
解法5:这道题还有很多种思想,自己可以多琢磨琢磨
习题5: 输入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<<endl;
return 0;
}