#include <iostream>
using namespace std;
int main()
{
int num1,num2,num3,num4;
int x;
int y;
cin>>num1>>num2>>num3>>num4;
if (num1 > num2)
{
x=num1;
}
else
{x = num2;
}
if(num3>num4)
{y = num3;
}
else
{
y= num4;
}
if (x>y)
{cout<<"the largest number is:"<<x;
}
else
{
cout<<"the largest number is :"<<y;
}
return 0;
}
这是我打印4个数字中最大数字的代码。 问题是我被要求优化或压缩解决方案。 我试过但找不到另一种方法来编写这样的程序。任何人都可以帮我优化解决方案并使其更好.. 忽略语法错误..
答案 0 :(得分:5)
可以这么简单:
int max = std::max( std::max( num1, num2 ), std::max( num3, num4 ) );
答案 1 :(得分:4)
#include<iostream>
using namespace std;
int main() {
int x, m;
cin >> x;
m = x;
for (int i = 0; i < 3; ++i) {
cin >> x;
m = m > x ? m : x;
}
cout << "The largest number is: " << m << endl;
return 0;
}
使用循环。
答案 2 :(得分:1)
一种方法是将值存储在数组中并迭代它:
int num[4];
cin >> num[0] >> num[1] >> num[2] >> num[3];
int max = num[0];
for (int i = 1; i < 4; ++i) {
if (num[i] > max) {
max = num[i];
}
}
cout << "The largest number is:" << max << endl;
答案 3 :(得分:1)
从C ++ 11开始,你可以直接进行
const int biggest = std::max({num1, num2, num3, num4});
答案 4 :(得分:0)
试试这个:))在这种情况下我不使用std库。只需使用if-else语句,如下所示。 if(a> b)然后返回a b。 在其他情况下,我们可以创建一个数组并向用户请求输入。首先我们设置此数组中的第一个元素是MAX值。使用循环并检查。如果当前元素大于MAX,则我们将MAX值更新为当前值。
int maxOfTwoNumber(int a, int b){ return a>b? a : b; }
int maxOfFourNumber(int a, int b, int c, int d){
return maxOfTwoNumber(maxOfTwoNumber(a, b), maxOfTwoNumber(c, d));
}