C中使用三元运算符的两个整数的最大值
在C中使用三元运算符返回两个整数的最大值有更好的方法吗 这就是我现在所拥有的C中使用三元运算符的两个整数的最大值,c,max,ternary-operator,C,Max,Ternary Operator,在C中使用三元运算符返回两个整数的最大值有更好的方法吗 这就是我现在所拥有的 int max(int a, int b) { int big = 0; big = (a>b)?a:b; return big; } 但我想写一些像这样的东西 #include <stdio.h> int main(void) { printf("%d\n",fun(5,4)); return 0; } int fun(int a, int b) { (a>b)?(ret
int max(int a, int b)
{
int big = 0;
big = (a>b)?a:b;
return big;
}
但我想写一些像这样的东西
#include <stdio.h>
int main(void)
{
printf("%d\n",fun(5,4));
return 0;
}
int fun(int a, int b)
{
(a>b)?(return a:return b);
}
#包括
内部主(空)
{
printf(“%d\n”,fun(5,4));
返回0;
}
int fun(int a,int b)
{
(a>b)?(返回a:返回b);
}
但是它给了我一个错误条件运算符(是的,它有一个名称!)用于构建表达式,因此您必须在需要表达式的地方使用它,例如,return语句的表达式:
return b < a ? a : b;
返回b
条件运算符(是的,它有一个名称!)用于构建表达式,因此您必须在需要表达式的地方使用它–例如,return语句的表达式:
return b < a ? a : b;
返回b
return
是一条语句,而不是表达式。它不能在表达式的中间使用。< /P>
此外,三元函数的两个返回值必须是单独的表达式;将它们包装在一组括号中,使它们成为一个表达式
因此,它应该是:
int fun(int a, int b) {
return (a > b) ? a : b;
}
return
是一条语句,而不是表达式。它不能在表达式的中间使用。< /P>
此外,三元函数的两个返回值必须是单独的表达式;将它们包装在一组括号中,使它们成为一个表达式
因此,它应该是:
int fun(int a, int b) {
return (a > b) ? a : b;
}
您可以做的一个改进是使函数
内联
inline int max(int a, int b) {
return a > b ? a : b;
}
另请参见。您可以做的一个改进是使函数
内联
inline int max(int a, int b) {
return a > b ? a : b;
}
另请参见。“它给了我一个错误”-因为它不是有效的C。
返回a>b有什么问题?a:b代码>不能在三元数的第二部分和第三部分用括号括起来。@WhozCraig,在我找到答案后回来,看到答案了。谢谢。“它给了我一个错误”-因为它不是有效的C。返回a>b有什么问题?a:b代码>不能在三元数的第二部分和第三部分用括号括起来。@WhozCraig,在我找到答案后回来,看到答案了。谢谢