快崩溃了,调了一个小时感觉是灵异事件

P1055 [NOIP2008 普及组] ISBN 号码

这边建议重构:Ctrl+A Del
by CooooldWind_ @ 2023-10-24 13:13:10


``` int b=0; ``` 变量没有赋初值,代码之神确实有点生气了吧
by silverleo @ 2023-10-24 13:19:22


添加一行 `b=0`,或者放在 `int main()` 前面作为全局变量自动清零。 若是局部变量(在 `int main` 里面),则变量会是一个随机值,用来累加的变量一定要清零。
by 2021zjhs005 @ 2023-10-24 13:21:34


@[silverleo](/user/585545) 加上去果然ac了,感谢!
by boringhen @ 2023-10-24 13:26:30


@[2021zjhs005](/user/1121995) 加上去果然ac了,感谢!不过我还有一点点不懂的地方,为什么最开始不清零可以正常运行,到了转化的地方才突然变成随机值,我debug的过程中发现累加是正常运行的,但一转化b马上就变成一个随机值了
by boringhen @ 2023-10-24 13:28:49


@[boringhen](/user/1157377) 他会找一个地址存b,你不赋值的话原来地址上是什么b就是什么
by Azote @ 2023-10-24 13:31:39


把变量定义在 `main()` 函数里是个很不吉利的事(确信 反正很多新手都犯过和你类似的错误,建议还是定义成全局变量
by AC_love @ 2023-10-24 13:31:45


您好,当你定义局部变量时,请赋初值。 全局变量之所以“不需要赋初值”,并非不需要初值,而是天然被赋为 `0` 。
by only_a_speaker @ 2023-10-24 13:36:25


对于局部变量来说,不赋值时它会是随机数,所以尽量要用全局变量,这样它就会自动赋值为0
by ShadowWalker @ 2023-10-24 13:40:33


@[AC_love](/user/186472) 我们程序设计的老师说尽量不要使用全局变量,应该是从实际项目而不是竞赛的角度考虑的,我还在纠结这个习惯问题
by boringhen @ 2023-10-24 13:44:16


| 下一页