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;
}
posted @ 2025-05-11 16:47  lunaMos  阅读(99)  评论(0)    收藏  举报