FC_YSN 发表于 2020-11-19 22:43:09

求助,帮看看哪里写错了

求助

风过无痕1989 发表于 2020-11-19 23:20:40

else if(N >= 65 && N <= 122) 这一句错误!因为 91 ~ 96 不属于英文字母,应改为:
else if((N >= 65 && N <= 90) || (N >= 97 && N <= 122))

jackz007 发表于 2020-11-20 00:23:02

本帖最后由 jackz007 于 2020-11-20 00:27 编辑

#include <stdio.h>

int main(void)
{
      char ch                     ;
      int b , c , d , k , n , o   ;
      scanf("%d" , & n)         ;
      fflush(stdin)               ;// 【关键语句】,执行 scanf() 以后,清除键盘缓冲区中剩余的 '\n'
                                       // 以免牵累后续 getchar() 的执行,造成最终结果错误。
      for(c = d = b = o = k = 0 ; k < n ; k ++) {
                ch = getchar()                  ;
                if(ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <= 'z') {
                        c ++      ;
                } else if(ch >= '0' && ch <= '9') {
                        d ++      ;
                } else if(ch == ' ' || ch == '\n') {
                        b ++      ;
                } else {
                        o ++      ;
                }
      }
      printf("letter = %d , blank = %d , digit = %d , other = %d\n" , c , b , d , o) ;
}
      编译、运行实况:
D:\00.Excise\C>g++ -o x x.c

D:\00.Excise\C>x
10
aZ &
09 Az
letter = 4 , blank = 3 , digit = 2 , other = 1

D:\00.Excise\C>

FC_YSN 发表于 2020-11-22 17:05:31

风过无痕1989 发表于 2020-11-19 23:20
else if(N >= 65 && N = 65 && N = 97 && N

自己又改了下,怎么还是不对呢?

风过无痕1989 发表于 2020-11-23 01:40:10

FC_YSN 发表于 2020-11-22 17:05
自己又改了下,怎么还是不对呢?

# include <stdio.h>
int main()
{
        char ch = ' ';      // 字符变量需要初始化
        /*        int n;*/      // 此变量没有使用
        int a = 0, b = 0, c = 0, d = 0;
        while (ch != '\n')// 下面的 scanf("%c", &ch) 语句,是输入单个字符,必须循环输入才能输入字符串
        {
                scanf("%c", &ch);
                if ((ch >= 'a'&& ch <= 'z') || (ch >= 'A'&& ch <= 'Z'))
                {
                        a++;
                }
                else if (ch == ' ' || ch == '\n')
                {
                        b++;
                }
                else if (ch >= '0'&& ch <= '9')
                {
                        c++;
                }
                else
                {
                        d++;
                }
        }
        printf("letter = %d, blank = %d, digit = %d, other =%d\n", a, b, c, d);
        return 0;
}
页: [1]
查看完整版本: 求助,帮看看哪里写错了