@[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