10.10 小白知识

发布于 2024-10-10  944 次阅读


c语言中怎么判断一个数是否能被另一个数整除

可以运用取模运算符%

取模取余通常可以指同一操作,取模表示两个数相除的余数,但在涉及负数时,两者结果可能会有所不同。

例如,-7 % 3 在很多语言中返回 -1,而在数学上进行取模运算时,通常会强制结果为非负数(即 2,因为 -7 可以被视为 -3 * (-3) + 2

if (a % b == 0) {
// a 能被 b 整除
}

这便可以看作判断方法


可以连续赋值,如int a=b=c=0;

方便,gpt都没给我说。。。。


10.12日晚 宿舍 至少耗时一个小时 成功在chatgpt的率领下攻占一座城池(计算今天是这一年中的第几天)

望周知

在这里复盘下,主要是以下几点:

1.我又将取余运算符(模运算符)写成了除法运算符,新手,可以理解;

2.我在chatgpt的提醒下将判断是否是闰年的代码块单独定义了一个函数来精简了代码,感觉是分好,而且在这里用到了if ( sf(year) ) 就是先在sf函数里面设置了是否为闰年的相应返回值return , 所以这里如果返回值是1就是润年,正好对应上了我对关系表达式输出的0与非0值的理解;

3,也是最重要的一点,我使用了数组来对应12个月份中的天数,但是由于闰年的存在,我在前面的代码定义并初始化a,然后在[1]即第二个数据填的是a,在判断完是否为闰年后在该if语句里面写了a=28和else中的a=29,最后的结果便让我大失所望。然后是chatgpt的回答:数组在初始化时,使用的是变量a的初始值:当你定义数组yues[]时,a的值还没有被赋值(它初始为0),所以yues[1]会被初始化为0。这意味着你定义的数组中,2月份的天数是0,虽然你在后续的代码中给a重新赋值为28或29,但这不会自动更新数组中的值,因为数组在定义时已经拷贝了a的初始值

所以我先直接将a改成了28来默认不是闰年,然后在判断确实是闰年后的if语句中写了yues[1]=29,不出所料,这样竟然就行了!所以,原来数组存储数据竟然是直接拷贝,而不是动态的,而且它不会允许你使用变量去放到数据里面,你只能直接再来修改

在这里就又引出了一个小知识

在 C 语言中,如果你在 if 语句中修改了一个变量的值,这个修改会影响整个函数内该变量的值

所以你应该是去用if (判断条件)else来引导代码的走向,这个走向只能是单一的

届ける言葉を今は育ててる
最后更新于 2024-11-05