嘿所以我正在学习本周开始的基本c ++,我有一个问题说:
编写一个程序来比较3个整数并打印最大的,程序应该只使用2个IF语句。
我不知道如何做到这一点,所以任何帮助将不胜感激
到目前为止,我有这个:
#include <iostream>
using namespace std;
void main()
{
int a, b, c;
cout << "Please enter three integers: ";
cin >> a >> b >> c;
if ( a > b && a > c)
cout << a;
else if ( b > c && b > a)
cout << b;
else if (c > a && c > b)
cout << b;
system("PAUSE");
}
答案 0 :(得分:6)
int main()
{
int a, b, c;
cout << "Please enter three integers: ";
cin >> a >> b >> c;
int big_int = a;
if (a < b)
{
big_int = b;
}
if (big_int < c)
{
big_int = c;
}
return 0;
}
另请注意,您应该写int main()
而不是void main()
。
答案 1 :(得分:4)
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
cout << "Please enter three integers: ";
cin >> a >> b >> c;
int max = a;
if (max < b)
max = b;
if (max < c)
max = c;
cout << max;
}
虽然上面的代码满足了练习题,但我想我会在没有任何if
的情况下添加其他几种方法来表明这样做。
这是一种更加神秘,难以理解的方式,这是不鼓励的,
int max = (a < b) ? ((b < c)? c : b) : ((a < c)? c : a);
优雅的方式是
int max = std::max(std::max(a, b), c);
对于后者,您需要#include <algorithm>
。
答案 2 :(得分:3)
您不需要最后一个“else if”语句。在这部分代码中,确保“c”是最大的 - 没有数字更大。
答案 3 :(得分:1)
提示:你的一个if
语句是无用的(实际上,它引入了一个错误,因为如果a,b和c都相等则不会打印任何内容。)