Omega. 发表于 2020-11-25 22:21:04

统计各类字符数量为什么结果全统计到num里面了?

本帖最后由 Omega. 于 2020-11-25 23:04 编辑

#include<stdio.h>
int main()
{
        int ch=0,space=0,num=0,n=0;
        char c;
        while(c=getchar()!='\n')
        {
                if((c>='a')&&(c<='z')||(c>='A'&&c<='Z'))
                        ch=ch+1;
                else if(c>=0&&c<=9)
                        num=num+1;
                else if(c==' ')
                        space=space+1;
                else
                        n=n+1;       
        }
        printf("character:%d\nnumber:%d\nspace:%d\nnone:%d\n",ch,num,space,n);
               
        printf("\n");
        return 0;
}

jackz007 发表于 2020-11-25 22:31:23

      这一句
                else if(c>=0&&c<=9)
      得改成下面这样
                else if(c>='0'&&c<='9')

Omega. 发表于 2020-11-25 22:57:24

jackz007 发表于 2020-11-25 22:31
这一句

      得改成下面这样

结果又全到n里面了。

风过无痕1989 发表于 2020-11-25 23:04:28

错误在注释中了
#include<stdio.h>
int main()
{
        int ch = 0, space = 0, num = 0, n = 0;
        char c;
        while ((c = getchar()) != '\n')// 是 c 接收到的字符不为回车键,而不是 getchar() 不为回车键,所以要加括号
        {
                if ((c >= 'a') && (c <= 'z') || (c >= 'A'&&c <= 'Z'))
                        ch = ch + 1;
                else if (c >= '0' && c <= '9')          // 数字也是字符,要加单引号
                        num = num + 1;
                else if (c == ' ')
                        space = space + 1;
                else
                        n = n + 1;
        }
        printf("character:%d\nnumber:%d\nspace:%d\nnone:%d\n", ch, num, space, n);

        printf("\n");
        return 0;
}

Omega. 发表于 2020-11-25 23:09:50

风过无痕1989 发表于 2020-11-25 23:04
错误在注释中了

好了

风过无痕1989 发表于 2020-11-25 23:11:34

Omega. 发表于 2020-11-25 23:09
好了

{:5_95:}
页: [1]
查看完整版本: 统计各类字符数量为什么结果全统计到num里面了?