我这两个 第一个50 第二个对的 为啥啊???

P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here

@[Dreamer_16](/user/285655) 第一个程序中i<=5只取前6位,而题目说的是整个字符串,所以第二个程序是对的,就比如一个样例: AAAAAA AAAAAAB 这个样例你的第一个程序就会错,因为你只判断到了前6位,而忽略了后面的。 只不过是题目样例刚好6位
by JimmyF @ 2019-11-23 07:28:36


@[Mr_Konnyaku](/user/252839) 那个我就是按照题目的意思呀,那为啥不行啊
by Dreamer_16 @ 2019-11-23 08:55:08


@[Dreamer_16](/user/285655) 抱歉,我看错题目了。~~啪啪,打脸~~ --- ## 对于你的第一个程序: 如果一个字符串长度不够时c++自动会把强制把字符串延长。你程序里的for循环不管字符串有多长都循环到6位,这时就会出现有字符串不满6位延长的现象,而延长的那些位就是空格,空格的ASCLL码是32,这样减32-‘A’+1就会得出一个负数-32,然后与总乘积相乘就会使结果变得不准确。 ## 对于第二个程序来说: 就不会有这种情况的发生,因为循环测了字符串的长度。 --- 如果还不理解的话你可以下载样例然后琢磨琢磨。 --- # 最后求关注!qwq
by JimmyF @ 2019-11-23 19:10:46


@[Mr_Konnyaku](/user/252839) 啊谢谢啦!关注啦
by Dreamer_16 @ 2019-11-28 12:45:56


|