离年 发表于 2020-2-28 10:57:54

萌新求助 字符输入 没有按照预想的跑

        char c;
        printf("input a character:\n");
        c=getchar();
        if(c<32)
        {
                printf("this is a control character\n");
        }
        else if(c>='0'&&c<='9')
        {
                printf("this is a digital\n");
        }
        else if(c>='A'&&c<='Z')
        {
                printf("this is a capital letter\n");
        }

当键盘输入数字的时候 显示出的结果都是 this is a digital
只有在输入相关的字符 如 a A的时候 结果才能对 是什么问题呢 求大佬

zltzlt 发表于 2020-2-28 11:01:33

没问题

一个账号 发表于 2020-2-28 11:09:39

发完整的代码

离年 发表于 2020-2-28 11:16:52

#include<stdio.h>
void main()
{
        char c;
        printf("input a character:\n");
        c=getchar();
        if(c<32)
        {
                printf("this is a control character\n");
        }
        else if(c>='0'&&c<='9')
        {
                printf("this is a \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");
        }
        else
        {
                printf("this is a other character\n");
        }
}

离年 发表于 2020-2-28 11:17:24

一个账号 发表于 2020-2-28 11:09
发完整的代码

发了

一个账号 发表于 2020-2-28 11:19:14

离年 发表于 2020-2-28 11:17
发了

你要实现什么效果?输入数字提示输入错误?

离年 发表于 2020-2-28 11:23:32

一个账号 发表于 2020-2-28 11:19
你要实现什么效果?输入数字提示输入错误?

这个代码意思不是说当我键盘输入数字的时候 程序会判断并且打印输出不同的英文句子吗 但是当我输入不同数字的时候运行的结果始终是this is a digital 完全跳不到其他的结果

qiuyouzhi 发表于 2020-2-28 11:31:47

离年 发表于 2020-2-28 11:23
这个代码意思不是说当我键盘输入数字的时候 程序会判断并且打印输出不同的英文句子吗 但是当我输入不同 ...

你也没写别的英文句子啊

小笨笨难得糊涂 发表于 2020-2-28 12:20:08

#include<stdio.h>
void main()
{
         char c;
         printf("input a character:\n");      
         c=getchar();
         if(c<32)                                                               
         {
               printf("this is a control character\n");            //输入值小于32的,显示this is a control character
         }
         else if(c>='0'&&c<='9')
         {
               printf("this is a digital\n");                   //输入0到9数字,显示this is a digital
         }
         else if(c>='A'&&c<='Z')
         {
               printf("this is a capital letter\n");   //输入A到Z数字,显示this is a capital letter

         }
         else if(c>='a'&&c<='z')
         {
               printf("this is a small letter\n");   //输入a 到z数字,显示this is asmall letter

         }
         else
         {
               printf("this is a other character\n");    //其它的,显示this is a other character
         }
}

当你输入不同类型的符号,会输出不同的语句,输入数字都是显示一样的语句。

无所谓-浪 发表于 2020-2-28 14:06:16

你这个 char c;这一句就表明系统一次只处理一个字符,输入数字肯定都是那一句。

无所谓-浪 发表于 2020-2-28 14:07:33

系统它一次只处理一个字符,数字肯定只有0-9.句子肯定也只是this is a digital。

无所谓-浪 发表于 2020-2-28 14:10:25

本帖最后由 无所谓-浪 于 2020-2-28 14:25 编辑

#include<stdio.h>
void main()
{
      char c;
      printf("input a character:\n");
      c=getchar();
      if(c>='0'&&c<='9')
      {
                printf("this is a digital\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");
      }
      else
      {
                printf("this is a other character\n");
      }
}
最多就这样,这个程序一次只能判断一个字符,所以不论你输入多少,它只会判断第一个输入的字符。

离年 发表于 2020-2-28 22:00:33

当我加了scanf("%c",&c)之后程序才按照想要的结果去跑
页: [1]
查看完整版本: 萌新求助 字符输入 没有按照预想的跑