Online Compiler C

#include <stdio.h> int main() { char c; char C; do{ scanf("%c", &c); C = c + '32' printf("%d", C); }while(c != '.'); return 0; }
这段代码试图将输入的小写字母转换为大写字母并输出其ASCII码值,但存在几个问题。

- 代码中 `C = c + '32'` 这一行缺少分号,会导致编译错误。
- 字符转换的逻辑有误:小写字母转大写应该减去32(例如 `'a' - 32 = 'A'`),而不是加上32。当前写法会得到错误的结果。
- 使用 `scanf("%c", &c)` 会读取包括换行符在内的所有字符,可能导致循环行为不符合预期。