str = input() for c in str: if c.isupper(): tmp1 = ord(c) - 65 tmp2 = 90 - tmp1 i = chr(tmp2) print(i,end ="") s = input() for i in s: if i.isupper(): tmp1 = ord(i) - 65 tmp2 = 90 - tmp1 i = chr(tmp2) print(i, end="") 为什么下边的代码结果正确,上边的代码显示不正确
时间: 2023-12-13 22:03:16 浏览: 78
C语言Turbo-C-2.0-函数中文说明大全.doc
在上面的代码中,变量 `i` 在每个循环迭代中都被重新赋值,而且它的值是单个字符,然后它被打印到控制台。这意味着每次迭代都会打印一个字符,而不是将所有字符组合成一个字符串打印。
下面的代码看起来正确,因为在每个迭代中,变量 `i` 被赋予一个新的值,然后被添加到一个字符串变量 `s` 中。最后,整个字符串 `s` 被打印到控制台。
所以,如果你想在上面的代码中得到正确的结果,你需要将每个字符添加到一个字符串变量中,然后在循环结束后打印该字符串变量,就像下面这样:
```
str = input()
result = "" # 新建一个字符串变量
for c in str:
if c.isupper():
tmp1 = ord(c) - 65
tmp2 = 90 - tmp1
i = chr(tmp2)
result += i # 将每个字符添加到字符串变量中
print(result) # 打印完整的字符串
s = input()
result = "" # 新建一个字符串变量
for i in s:
if i.isupper():
tmp1 = ord(i) - 65
tmp2 = 90 - tmp1
i = chr(tmp2)
result += i # 将每个字符添加到字符串变量中
print(result) # 打印完整的字符串
```
阅读全文