鱼C论坛

 找回密码
 立即注册
查看: 1256|回复: 7

[已解决]理解别人代码的时候有两行看不太懂什么意思

[复制链接]
发表于 2021-9-28 04:22:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. own_chunk_size = (number_of_elements >= chunk_size*(rank_of_process + 1)) ? chunk_size : (number_of_elements - chunk_size*rank_of_process);
复制代码




  1. int received_chunk_size= (number_of_elements>= chunk_size* (rank_of_process + 2 * step))? (chunk_size * step): (number_of_elements- chunk_size* (rank_of_process + step));
复制代码


有没有大佬能帮忙简化成 if else 的形式

主要就是不明白 '?' 和 ':' 在这里面起到的作用,谢谢!
最佳答案
2021-9-28 07:29:51
  1.     //own_chunk_size = (number_of_elements >= chunk_size*(rank_of_process + 1)) ? chunk_size : (number_of_elements - chunk_size*rank_of_process);
  2.     if(number_of_elements >= chunk_size*(rank_of_process + 1))
  3.     {
  4.         own_chunk_size = chunk_size;
  5.     }
  6.     else
  7.     {
  8.         own_chunk_size = number_of_elements - chunk_size*rank_of_process;
  9.     }

  10.     //int received_chunk_size= (number_of_elements>= chunk_size* (rank_of_process + 2 * step))? (chunk_size * step): (number_of_elements- chunk_size* (rank_of_process + step));
  11.     int received_chunk_size;
  12.     if(number_of_elements>= chunk_size* (rank_of_process + 2 * step))
  13.     {
  14.         received_chunk_size = chunk_size * step;
  15.     }
  16.     else
  17.     {
  18.         received_chunk_size = number_of_elements- chunk_size* (rank_of_process + step);
  19.     }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-9-28 07:29:51 | 显示全部楼层    本楼为最佳答案   
  1.     //own_chunk_size = (number_of_elements >= chunk_size*(rank_of_process + 1)) ? chunk_size : (number_of_elements - chunk_size*rank_of_process);
  2.     if(number_of_elements >= chunk_size*(rank_of_process + 1))
  3.     {
  4.         own_chunk_size = chunk_size;
  5.     }
  6.     else
  7.     {
  8.         own_chunk_size = number_of_elements - chunk_size*rank_of_process;
  9.     }

  10.     //int received_chunk_size= (number_of_elements>= chunk_size* (rank_of_process + 2 * step))? (chunk_size * step): (number_of_elements- chunk_size* (rank_of_process + step));
  11.     int received_chunk_size;
  12.     if(number_of_elements>= chunk_size* (rank_of_process + 2 * step))
  13.     {
  14.         received_chunk_size = chunk_size * step;
  15.     }
  16.     else
  17.     {
  18.         received_chunk_size = number_of_elements- chunk_size* (rank_of_process + step);
  19.     }
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
Daniel_Zhang + 5 + 5 + 3 谢谢大佬

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-28 07:30:41 | 显示全部楼层
就是三元运算符,原理是:
  1. res = (条件判断语句) ? a : b
复制代码

等价于
  1. if(条件判断语句):
  2.     res = a
  3. else:
  4.     res = b
复制代码

第二个
  1. int received_chunk_size = 0
  2. if number_of_elements >= chunk_size * (rank_of_process + 2 * step):
  3.     received_chunk_size = chunk_size * step
  4. else:
  5.     received_chunk_size = number_of_elements - chunk_size * (rank_of_process + step)
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
Daniel_Zhang + 5 + 5 + 3 楼上大佬先来的,最佳给他了,但还是谢谢你

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-28 07:31:46 | 显示全部楼层
昨晚熬夜到四点吗

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
Daniel_Zhang + 5 + 5 + 3 感谢

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-28 13:59:45 | 显示全部楼层

谢谢大佬,刚起,吃完饭研究研究
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-28 14:00:47 | 显示全部楼层
小甲鱼的铁粉 发表于 2021-9-28 07:30
就是三元运算符,原理是:

等价于

谢谢大佬,刚起,吃完饭研究研究.确实,熬夜到了 4 点,躺床上也睡不着,玩了会儿手机,估计 6 点才睡的吧,太难了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-28 18:29:27 | 显示全部楼层
Daniel_Zhang 发表于 2021-9-28 14:00
谢谢大佬,刚起,吃完饭研究研究.确实,熬夜到了 4 点,躺床上也睡不着,玩了会儿手机,估计 6 点才睡的吧,太难 ...

我以为我熬的够久了
没想到。。。。。
这是谁的部将
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-29 12:34:55 | 显示全部楼层

谢谢大佬再次救我狗命!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-29 23:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表