鱼C论坛

 找回密码
 立即注册
查看: 906|回复: 2

[已解决]带你学C:指针和二维数组课后作业动动手第2题要求A

[复制链接]
发表于 2023-6-29 16:17:12 | 显示全部楼层 |阅读模式

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

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

x
看不懂下面这段代码,if里边的值怎么样判断真假?这不是一个二维数组的值吗,怎么能判断真假?求大佬解释一下

if (pm25[year][month])         //这里的if判断的条件是什么?
                {
                        printf("%d年%d月广州的PM2.5值是: %.2f\n", year + 2014, month + 1, pm25[year][month]);
                }
                else
                {
                        printf("抱歉,该月份未收录数据!\n");
                }
最佳答案
2023-6-29 16:18:00
本帖最后由 歌者文明清理员 于 2023-6-29 16:19 编辑

根据给出的代码片段,我们可以看到 if 语句中的条件是 pm25[year][month]。在 C 语言中,数组名本身代表数组的首地址,而 pm25[year][month] 表示二维数组 pm25 中的特定元素。

所以,pm25[year][month] 实际上表示数组 pm25 中的第 year 行、第 month 列的元素值。对于数值类型的元素,它们可以用于条件判断时进行真假判断。以下是常见的真假判断规则:

  • 如果元素值为 0,则被当作假(false);
  • 如果元素值非零,则被当作真(true)。

因此,if (pm25[year][month]) 的含义是:如果 pm25 数组中的第 year 行、第 month 列的元素非零,则条件成立(为真);否则,条件不成立(为假)。

根据条件是否成立,程序将执行相应的代码分支:若条件成立,则会输出对应年份和月份的广州 PM2.5 值;若条件不成立,则输出"抱歉,该月份未收录数据!"。

详细版:

当判断条件 if (pm25[year][month]) 中的 pm25[year][month] 作为一个数值类型的元素进行判断时,其真假值的判断规则如下:

  • 如果 pm25[year][month] 的值为 0,那么条件判断结果为假(false)。
  • 如果 pm25[year][month] 的值不为 0,那么条件判断结果为真(true)。

在C语言中,对于整型、浮点型等数字类型,0 被视为假,非零值被视为真。因此,通过判断 pm25[year][month] 是否为 0,可以确定条件是否成立。

举个例子来说,假设 pm25 是一个二维数组,year 表示年份,month 表示月份。如果 pm25[year][month] 的值为 0,表示该年份和月份的广州 PM2.5 数据未收录或为无效数据,那么条件判断为假;如果 pm25[year][month] 的值不为 0,表示该年份和月份的广州 PM2.5 数据有效,那么条件判断为真。

根据条件判断的结果,程序将执行相应的代码分支。如果条件成立(为真),则会输出对应年份和月份的广州 PM2.5 值;如果条件不成立(为假),则会输出"抱歉,该月份未收录数据!"。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-29 16:18:00 | 显示全部楼层    本楼为最佳答案   
本帖最后由 歌者文明清理员 于 2023-6-29 16:19 编辑

根据给出的代码片段,我们可以看到 if 语句中的条件是 pm25[year][month]。在 C 语言中,数组名本身代表数组的首地址,而 pm25[year][month] 表示二维数组 pm25 中的特定元素。

所以,pm25[year][month] 实际上表示数组 pm25 中的第 year 行、第 month 列的元素值。对于数值类型的元素,它们可以用于条件判断时进行真假判断。以下是常见的真假判断规则:

  • 如果元素值为 0,则被当作假(false);
  • 如果元素值非零,则被当作真(true)。

因此,if (pm25[year][month]) 的含义是:如果 pm25 数组中的第 year 行、第 month 列的元素非零,则条件成立(为真);否则,条件不成立(为假)。

根据条件是否成立,程序将执行相应的代码分支:若条件成立,则会输出对应年份和月份的广州 PM2.5 值;若条件不成立,则输出"抱歉,该月份未收录数据!"。

详细版:

当判断条件 if (pm25[year][month]) 中的 pm25[year][month] 作为一个数值类型的元素进行判断时,其真假值的判断规则如下:

  • 如果 pm25[year][month] 的值为 0,那么条件判断结果为假(false)。
  • 如果 pm25[year][month] 的值不为 0,那么条件判断结果为真(true)。

在C语言中,对于整型、浮点型等数字类型,0 被视为假,非零值被视为真。因此,通过判断 pm25[year][month] 是否为 0,可以确定条件是否成立。

举个例子来说,假设 pm25 是一个二维数组,year 表示年份,month 表示月份。如果 pm25[year][month] 的值为 0,表示该年份和月份的广州 PM2.5 数据未收录或为无效数据,那么条件判断为假;如果 pm25[year][month] 的值不为 0,表示该年份和月份的广州 PM2.5 数据有效,那么条件判断为真。

根据条件判断的结果,程序将执行相应的代码分支。如果条件成立(为真),则会输出对应年份和月份的广州 PM2.5 值;如果条件不成立(为假),则会输出"抱歉,该月份未收录数据!"。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-6-29 16:21:27 | 显示全部楼层
歌者文明清理员 发表于 2023-6-29 16:18
根据给出的代码片段,我们可以看到 if 语句中的条件是 pm25[year][month]。在 C 语言中,数组名本身代表数 ...

感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 17:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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