标题:题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数 ...
只看楼主
唐兵
Rank: 2
来 自:四川泸州合江
等 级:论坛游民
帖 子:150
专家分:12
注 册:2012-12-1
结帖率:82.05%
已结贴  问题点数:10 回复次数:9 
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数;请问各位大神错哪了
  # include <stdio.h>
     void main()
 {

char  i=0,c;
int z=0,d=0,k=0,q;/*z代表字母,d代表数字,k代表空格,q代表其他*/
 printf ("input  字符\n ");

 while (++i,(c=getchar())!='\n')
 {if (c>='a'&&c<='z'||c>='A'&&c<='Z') z++;
 else if(c>='0'&&c<='9') d++;
 else if (c=='') k++;
else q++;
printf("%d%d%d%d\n",z,d,k,q);
 }
     }
搜索更多相关主题的帖子: 其它 统计 英文字母 include 
2012-12-07 13:06
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
得分:3 
else if (c=='') k++;

C=''
2012-12-07 13:18
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:3 
空格中间应该是一个空格

最稳妥的办法是if (c=='') 替换为if (c==0x20)

DO IT YOURSELF !
2012-12-07 13:23
唐兵
Rank: 2
来 自:四川泸州合江
等 级:论坛游民
帖 子:150
专家分:12
注 册:2012-12-1
得分:0 
什么意思啊
不行

一个人如果不比自己一把,你永远不知道自己究竟有多厉害
2012-12-07 13:25
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
至少编译是可以过的 逻辑方面的我没看

DO IT YOURSELF !
2012-12-07 13:26
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
得分:0 
# include <stdio.h>
int main()
{
    char c;
    int z = 0;
    int d = 0;
    int k = 0;
    int q = 0;/*z代表字母,d代表数字,k代表空格,q代表其他*/
   
    printf ("input:\n ");

    while ((c=getchar()) != '\n')
    {
        if ((c >= 'a' && c <= 'z') || (c >= 'A' && c<= 'Z')){
            z++;
        }else if(c>='0'&&c<='9'){
            d++;
        }else if (c == ' '){
                k++;
        }else q++;               
    }
    printf("z= %d  d=%d  k=%d  q=%d\n",z,d,k,q);
return 0;
}
---------
规范下代码
2012-12-07 13:27
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
得分:0 
你的错误在于 '',中间要加入一个空格' '
最稳妥的办法是if (c=='') 替换为if (c==0x20)
这个做法是对的

2012-12-07 13:29
fz19910125
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:52
专家分:11
注 册:2010-10-12
得分:3 
程序代码:
int main()
{
     int words=0;//初始化字母个数
     int num = 0;//初始化数字个数
     char str[50];//接受用户输入的字符串数组
     memset(str,0,sizeof(str));//初始化数组
     gets(str);//用户输入
     cout<<strlen(str)<<endl;//字符串长度
     for (int i = 0 ; i < strlen(str) ;++i)
     {
         if (str[i] >= 'a' && str[i] <= 'z') //判断是否为字母
         {
             words++;//自加
         }
         if (str[i] >= '0' && str[i] <= '9') //判断是否为数字
         {
             num++; //自加
         }
     }
     cout<<"words is "<<words<<endl<<"nums is "<<num<<endl;//输出
     system("pause");
     return 0;

 }
2012-12-07 16:42
唐兵
Rank: 2
来 自:四川泸州合江
等 级:论坛游民
帖 子:150
专家分:12
注 册:2012-12-1
得分:0 
回复 6楼 daniel_
谢了,ok了

一个人如果不比自己一把,你永远不知道自己究竟有多厉害
2012-12-07 16:49
唐兵
Rank: 2
来 自:四川泸州合江
等 级:论坛游民
帖 子:150
专家分:12
注 册:2012-12-1
得分:0 
回复 3楼 wp231957
谢了哈

一个人如果不比自己一把,你永远不知道自己究竟有多厉害
2012-12-07 16:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-390011-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.603254 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved