1522843196 发表于 2020-4-18 14:33:13

字符分类!小白求助!!!!

问题描述(可以帮我看看是不是哪里还漏了条件没有判断,怎么做系统都判断不了满分!!求助,谢谢!!)
编写程序,从键盘读入一个字符,然后输出该字符对应的ASCII编号的十进制数值和十六进制数值(字母使用大写形式,后面显示字母’H’加以区分)到屏幕,并判断该字符的类型:
如果该字符是大写字母,则输出“uppercase”;
如果该字符是小写字母,则输出“lowercase”;
如果该字符是数字,则输出“digital”;
如果该字符不是以上3种类型,则输出“other”。

输入格式
一共1行数据,包含1个字符。
输出格式
输出1行信息,包含1个十进制数值、1个十六进制数值(字母使用大写形式,后面显示字母’H’加以区分)以及相应的类型信息,三者之间使用一个空格分隔,行末没有空格也没有换行符。
数据规模与约定
所输入的字符,其ASCII十进制编号n满足 33 ≤ n ≤ 126。

样例输入
N
样例输出
78 4EH uppercase

#include <stdio.h>

int main()
{
    char n;
    scanf("%c", &n);
    if(n >= 33 && n <= 126)//输入整数的取值范围
    {
      if(n > 'A' && n < 'Z')//判断大写
      {
            printf("%d %XH uppercase", n, n);
      }
      else if(n > 'a' && n < 'z')//判断小写
      {
              printf("%d %XH lowercase", n, n);
                }
                else if(n != (n > 'A' && n < 'Z') && n != (n > 'a' && n < 'z'))//判断数字
                {
                        printf("%d %XH digital", n, n);
                }
                else//其他类型输出
                {
                        printf("other");
                }
    }
   
    return 0;
}

qiuyouzhi 发表于 2020-4-18 14:42:06

把判断字符的>和<都改成>=和<=

1522843196 发表于 2020-4-18 14:44:34

qiuyouzhi 发表于 2020-4-18 14:42
把判断字符的>和=和

还是不对{:10_266:}

liuzhengyuan 发表于 2020-4-18 17:13:59

1522843196 发表于 2020-4-18 14:44
还是不对

你判断数字是不建议这么判断
建议:
n>='0' && n<='9'

楼上说的也是对的

所以你的程序有两点错误

1522843196 发表于 2020-4-18 17:29:48

liuzhengyuan 发表于 2020-4-18 17:13
你判断数字是不建议这么判断
建议:
n>='0' && n

好的,我改一下试试。

liuzhengyuan 发表于 2020-4-18 17:39:17

1522843196 发表于 2020-4-18 17:29
好的,我改一下试试。

成功了吗{:10_254:}

1522843196 发表于 2020-4-18 18:17:50

liuzhengyuan 发表于 2020-4-18 17:13
你判断数字是不建议这么判断
建议:
n>='0' && n

还是不对,就是系统没有任何的报错,只是单方面的显示答案错误。

liuzhengyuan 发表于 2020-4-18 18:25:24

1522843196 发表于 2020-4-18 18:17
还是不对,就是系统没有任何的报错,只是单方面的显示答案错误。

那是哪个系统?把源码发一下呗~

耻思lhj 发表于 2020-4-18 21:34:18

#include <stdio.h>

int main()
{
    char n;
    scanf("%c", &n);
    if(n >= 'A' && n <= 'Z')//判断大写
    {
      printf("%d %XH uppercase", n, n);
    }
    else if(n >= 'a' && n <= 'z')//判断小写
    {
      printf("%d %XH lowercase", n, n);
    }
    else if(n >= '0' && n <= '9')//判断数字
    {
      printf("%d %XH digital", n, n);
    }
    else//其他类型输出
    {
      printf("other");
    }
   
   
    return 0;
}
你这些if是真的乱

love_qj 发表于 2020-4-19 09:19:20

#include <stdio.h>

int main()
{
    char n;
    scanf("%c", &n);
    if(n >= 33 && n <= 126)//输入整数的取值范围
    {
      if(n >= 'A' && n <= 'Z')//判断大写
      {
            printf("%d %XH uppercase", n, n);
      }
      else if(n >= 'a' && n <= 'z')//判断小写
      {
            printf("%d %XH lowercase", n, n);
      }
      else if(n >= '0' && n <= '9')//判断数字
      {
            printf("%d %XH digital", n, n);
      }
      else//其他类型输出
      {
            printf("other");
      }
    }
   
    return 0;
}

1522843196 发表于 2020-4-20 00:48:46

liuzhengyuan 发表于 2020-4-18 17:39
成功了吗

抱歉抱歉,昨天有事没有看到,还是不行。

1522843196 发表于 2020-4-20 00:49:36

liuzhengyuan 发表于 2020-4-18 18:25
那是哪个系统?把源码发一下呗~

PTA的系统,代码就是上面那个

1522843196 发表于 2020-4-20 00:51:03

love_qj 发表于 2020-4-19 09:19
#include

int main()


还是错误,那个数字判断还是不对

1522843196 发表于 2020-4-20 00:51:34

耻思lhj 发表于 2020-4-18 21:34
你这些if是真的乱

好的,我会改进的。

陈天才 发表于 2020-4-20 01:04:39

qaq

love_qj 发表于 2020-4-24 11:46:03

1522843196 发表于 2020-4-20 00:51
还是错误,那个数字判断还是不对

怎么我的就可以

1522843196 发表于 2020-4-26 15:11:00

love_qj 发表于 2020-4-24 11:46
怎么我的就可以

我的是PTA系统不过,我也不知道错哪里了。
页: [1]
查看完整版本: 字符分类!小白求助!!!!