C语言中条件表达式的问题

在刘汝佳的一本算法书里有这样一段代码
int d(int i,int j)
{
return a[i][j]+(i == n ? 0 : d(i+1,j)>?d(i+1,j+1));
}
后面那个">?"VC6编译时根本通不过啊,有这么写的么?

三目运算符吧
是这么写的 :?
比如说

<表达式1>?<表达式2>:<表达式3>; "?"运算符的含义是: 先求表达式1的值, 如果为真, 则求表达式2 的值并把它作为整个表达式1的值; 如果表达式1 的值为假, 则求表达式3 的值并把它作为整个表达式1的值.

可是你那个写的我就不知道怎么回事了,也有可能是印刷错误?书上有输出结果吗?比着结果再看程序。。。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-23
那个问号应该是多了吧。
(i == n ? 0 : d(i+1,j)>d(i+1,j+1));
返回:i=n时,返回0,
i!=n时,d(i+1,j)>d(i+1,j+1)的比较结果返回1或者0.

估计是数组里,对应第n行,a相应元素+0不变
其他行看d(i+1,j)>d(i+1,j+1)的比较结果,对a[i][j]进行操作
a[i][j]+1或者不变。

也不知道用来干什么的。。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网