|
5鱼币
- #include <stdio.h>
- void Alphabet(char ch)
- {
- if (ch >= 'a' && ch <= 'z')
- {
- printf("%c 在字母表中的位置是:%d\n", ch, ch - 'a' + 1);
- }
- else if (ch >= 'A' && ch <= 'Z')
- {
- printf("%c 在字母表中的位置是:%d\n", ch, ch - 'A' + 1);
- }
- else
- {
- printf("%c 不是字母\n", ch);
- }
- }
- int main()
- {
- char ch;
- while((ch = getchar()) != EOF)
- {
- Alphabet(ch);
- }
- return 0;
- }
复制代码
这个代码运行后总是多出一行“不是字母”,哪里出了问题
修改后的代码如下:
- #include <stdio.h>
- void Alphabet(char ch)
- {
- if (ch >= 'a' && ch <= 'z')
- {
- printf("%c 在字母表中的位置是:%d\n", ch, ch - 'a' + 1);
- }
- if (ch >= 'A' && ch <= 'Z')
- {
- printf("%c 在字母表中的位置是:%d\n", ch, ch - 'A' + 1);
- }
- if ((ch < 'A') || (ch > 'Z' && ch < 'a') || (ch > 'z'))
- {
- printf("%c 不是字母\n", ch);
- }
- }
- int main()
- {
- char ch;
- while((ch = getchar()) != EOF)
- {
- if (ch != '\n') Alphabet(ch);
- }
- return 0;
- }
复制代码
|
|