马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我一开始写了下面的代码,点击回车后只是换了行,还要再按一次回车才输出结果,结果还是错的。
- #include <stdio.h>
- #include <ctype.h>
- int main(void)
- {
- //输入英文字母,计算对应值的总和
- const int letter_count[26] = {1, 3, 3, 2, 1, 4, 2, 4, 1, 8, 5, 1, 3, 1, 1, 3, 10, 1, 1, 1, 1, 4, 4, 8, 4, 10};
- int scrabble = 0;
-
- printf("Enter a word: ");
-
- while (getchar() != '\n') {
- scrabble += letter_count[toupper(getchar()) - 'A'];
- }
-
- printf("Scrabble value: %d\n", scrabble);
-
- return 0;
- }
复制代码
后面我改成ch = getchar()之后就正常了,这是为什么?这两个不一样吗?改之后的代码如下:
- #include <stdio.h>
- #include <ctype.h>
- int main(void)
- {
- //输入英文字母,计算对应值的总和
- const int letter_count[26] = {1, 3, 3, 2, 1, 4, 2, 4, 1, 8, 5, 1, 3, 1, 1, 3, 10, 1, 1, 1, 1, 4, 4, 8, 4, 10};
- int scrabble = 0;
- char ch;
-
- printf("Enter a word: ");
-
- while ((ch = getchar()) != '\n') {
- scrabble += letter_count[toupper(ch) - 'A'];
- }
-
- printf("Scrabble value: %d\n", scrabble);
-
- return 0;
- }
复制代码 |