CPP_0002_三数最大值
输入:三个数;
输出:三个数中最大的数。
#include <iostream>
using namespace std;
int main()
{
int a, b, c = 0;
cout << "输入3个数:" << endl;
cin >> a >> b >> c;
int n = 0;
if(a>b) n=a;
else n=b;
if(c>n) n=c;
cout << "三个数中最大的数是: " << n;
return 0;
}
总结:使用一个数n来记录当前得到的最大值。
一种使用逻辑运算符的错误方法:
int main()
{
int a, b, c = 0;
cout << "输入3个数:" << endl;
cin >> a >> b >> c;
if (a>b && a>c) cout << "三个数中最大的数是: " << a;
if (b>a && b>c) cout << "三个数中最大的数是: " << b;
if (c>b && c>a) cout << "三个数中最大的数是: " << c;
return 0;
}
上述代码之考虑到了三个数不相同的情况,这种情况下如果三个数之中有的最大值是两个或者三个同的数,那么就不会有输出结果:

if (a>=b && a>=c) cout << "三个数中最大的数是: " << a;
if (b>=a && b>=c) cout << "三个数中最大的数是: " << b;
if (c>=b && c>=a) cout << "三个数中最大的数是: " << c;
同样,如果将其修改为>=号,仍然是忽略了三个数之中有的最大值是两个或者三个同的数,这种情况下会将相同的最大值多次输出

如果一定要使用逻辑运算符号,可以使用以下的方法:
#include <iostream>
using namespace std;
int main()
{
int a, b, c = 0;
cout << "输入3个数:" << endl;
cin >> a >> b >> c;
if (a>=b && a>=c) cout << "三个数中最大的数是: " << a;
// 此时,得知a不是最大值,那么最大值一定在b,c 之间,接下来,只要输出b,c之间较大的那个即可。
else {
if(b>c) cout << "三个数中最大的数是: " << b;
else cout << "三个数中最大的数是: " << c;
}
return 0;
}

浙公网安备 33010602011771号