安静路过 发表于 2018-8-4 12:11:59

在连续判断else if中,为什么这个代码运行不了?

#include <stdio.h>
int main()
{
        char c;
        printf("input a character: ");
        c=getcher();
        if(c<32)
        {
                printf("This is a control character!");
        }
        else if(c>='0' && c<='9')
        {
                printf("This is a digit\n");
        }
        else if(c>='A'&& c<='Z')
        {
                printf("This is a capital letter!\n");
        }
        else if(c>='a' && c<='z')
        {
                printf("This is a small letter!\n");
        }
}

无符号整形 发表于 2018-8-4 12:18:09

第6行打错。
由于c支持默认int,所以语法检查pass了。
但是由于编译器找不到getcher本体,报错退出。

人造人 发表于 2018-8-4 12:32:09

我没有看错,是getcher
getcher
getcher

https://fishc.com.cn/forum.php?mod=viewthread&tid=68661&extra=page%3D1%26filter%3Dtypeid%26typeid%3D583

31207 发表于 2018-8-4 13:12:15

return 0;呢??

claws0n 发表于 2018-8-4 13:27:21

getcher 变成 getchar

最后加 return 0;

不再想起y 发表于 2018-8-5 12:00:17

#include <stdio.h>
int main()
{
      char c;
      printf("input a character: ");
      c=getchar();//getcher 改为getchar
      if(c<32)
      {
                printf("This is a control character!");
      }
      else if(c>='0' && c<='9')
      {
                printf("This is a digit\n");
      }
      else if(c>='A'&& c<='Z')
      {
                printf("This is a capital letter!\n");
      }
      else if(c>='a' && c<='z')
      {
                printf("This is a small letter!\n");
      }
      return 0;//结尾加上因为是int main
}
页: [1]
查看完整版本: 在连续判断else if中,为什么这个代码运行不了?