发布网友 发布时间:2022-04-22 00:18
共5个回答
热心网友 时间:2022-03-31 16:51
flag?b[i]>b[j]:b[i]<b[j]解释这个之前,我先解释一下简单的
示例:
部分代码如下:
int flag=1,a=2,c=3;
int ans;
ans=flag ? a : c;/*先判断flag是否为真,为真(非零)的话取a的值,为假(零)的话取c的值,取完值后赋给ans变量,该示例中因为flag为1,结果为真,所以取a的值赋给ans,所以ans的值和a的值一样,都为2*/
再来看看
flag?b[i]>b[j]:b[i]<b[j]
和示例对比,可以化为:
int a=b[i]>b[j], c=b[i]<b[j]; /*其中b[i]和b[j]的值应该是已知的,如果b[i]的值大于b[j]的值,则 表达式b[i]>b[j]的值就为1,即a的值为1;同样推出c的值为0; */
flag ? a : c ; //这样就根据flag是真是假来判断了
不知道这样解释了,LZ是否明白了呢?
热心网友 时间:2022-03-31 18:09
flag?b[i]>b[j]:b[i]<b[j]解释这个之前,我先解释一下简单的
示例:
部分代码如下:
int
flag=1,a=2,c=3;
int
ans;
ans=flag
?
a
:
c;/*先判断flag是否为真,为真(非零)的话取a的值,为假(零)的话取c的值,取完值后赋给ans变量,该示例中因为flag为1,结果为真,所以取a的值赋给ans,所以ans的值和a的值一样,都为2*/
再来看看
flag?b[i]>b[j]:b[i]<b[j]
和示例对比,可以化为:
int
a=b[i]>b[j],
c=b[i]<b[j];
/*其中b[i]和b[j]的值应该是已知的,如果b[i]的值大于b[j]的值,则
表达式b[i]>b[j]的值就为1,即a的值为1;同样推出c的值为0;
*/
flag
?
a
:
c
;
//这样就根据flag是真是假来判断了
不知道这样解释了,lz是否明白了呢?
热心网友 时间:2022-03-31 19:43
如果flag的值为非0则该语句的结果为b[i]>b[j],如果为0,则该语句结果为b[i]<b[j]
_?_:_的意思就是如果问号前的为真则语句值为冒号前的值,否则语句值为冒号后的值
热心网友 时间:2022-03-31 21:35
flag?b[i]>b[j]:b[i]
b[j]:b[i]
b[j],
c=b[i]
b[j]的值就为1,即a的值为1;同样推出c的值为0;
*/
flag
?
a
:
c
;
//这样就根据flag是真是假来判断了
不知道这样解释了,LZ是否明白了呢?
热心网友 时间:2022-03-31 23:43
flag?b[i]>b[j]:b[i]<b[j]
说的简单一点,这个语句等于
if(flag)
b[i]>b[j];
else
b[i]<b[j];
这个很好理解了吧!!