【发布时间】:2013-03-27 09:28:59
【问题描述】:
所以我也从用户输入中得到两个数字,并在不使用 if 语句的情况下找到两个数字的最大值。
该课程是初学者课程,我们也使用了我们已经知道的内容。我有点想出办法,但只有先输入最大数字的数字才有效。
#include <iostream>
using namespace std;
int main()
{
int x = 0, y = 0, max = 0;
int smallest, largest;
cout << "Please enter 2 integer numbers, and i will show you which one is larger: ";
cin >> x >> y;
smallest = (x < y == 1) + (x - 1);
smallest = (y < x == 1) + (y - 1);
largest = (x < y == 1) + (y - 1);
largest = (y > x == 1) + (x + 1 - 1);
cout << "Smallest: " << smallest << endl;
cout << "Largest: " << largest << endl;
return 0;
}
这就是我目前所拥有的,但在放入不同的测试数据后,我发现它只适用于 4,5 或 6,7 等数字。但是数字之间有超过 2 个空格,它们不会,例如 4,8 或 5, 7。任何帮助将不胜感激。
【问题讨论】:
-
当然不是。如果
y>x,largest = (y > x == 1) + (x + 1 - 1);只返回x+1。 (例如 y=9, x=8,这将返回 9,但不是因为 9 更大) -
您分配给同一事物两次,忽略第一次。你涵盖了 if 语句吗?
-
为什么不用if语句?
-
你可以使用
std::max吗? -
试试这个:
int Max = (x > y ? x : y);
标签: c++ if-statement