[英]Function to determine whether 2 numbers are =, > or <
我有一个关于一个函数来确定的问题,如果一个数字是>
, =
或<
大于另一个。
如果我有例如:
int fun(int a, int b)
{
if (a > b)
return a;
else
if (b > a)
return b;
else
return 0
}
(我不希望使用任何cout
与用户交互)。 现在,如果我给出2个数字,它将给我a
, b
或0
。 但是例如,如果放入函数a = -1
和b = 0
,则即使两个数字不相等,该函数也明显返回0
。
是的,我可以在调用函数之前检查两个数字是否相同。 或者,我可以使用变量来查看我的情况,例如:
int fun(int a, int b)
{
int k = 0;
if (a > b)
return k;
else
if (b > a)
return k+1;
else
return k+2
}
但是所有这些解决方案都不是那么优雅。 有没有办法将0
int
与另一个int
区分? 还是在任何情况下都有一种方法可以确保在这种情况下返回值来自给定点?
if
内的语句返回, if
不需要else
。 我还要返回一些具有实际意义的东西,而不仅仅是一个整数。 例如:
enum Relationship { LessThan = -1, Equal, GreaterThan};
if(a==b)
return Relationship::Equal;
if(a>b)
return Relationship::GreaterThan;
return Relationship::LessThan;
总的来说,我可能不会费心编写这样的功能,因为管理此三进制输出似乎比付出的努力多,但我认为这是某种练习。
您可以使用指针
int* fun(int *a, int *b)
{
if (*a > *b)
return a;
else
if (*b > *a)
return b;
else
return NULL
}
如果返回值不为NULL,则可以根据返回值给出最大数量
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.