| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2293 人关注过本帖, 1 人收藏
标题:统计单词个数
只看楼主 加入收藏
cxly
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2016-11-15
结帖率:73.33%
收藏(1)
已结贴  问题点数:20 回复次数:4 
统计单词个数

本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:

输入给出一行字符。
输出格式:

在一行中输出单词个数。
输入样例:

Let's go to room 209.

输出样例:

5

这是我做的,显示有部分正确,有部分段错误,还有部分答案错误,哪里出了问题?
#include<stdio.h>
int main (void)
{
    int i,k,count=1,t,j;
    char str[80];

    k=0;
    while((str[k]=getchar())!='\n')
        k++;
    str[k]='\n';

    for(i=0;i<k;i++)
    {
        if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
            t=i;
        break;
    }
    for(j=t;j<k;j++)
    {
        if(str[j]==' ')
            count++;
    }

        printf("%d\n",count);
        return 0;
}

搜索更多相关主题的帖子: 编写程序 include 字符串 count 单词 
2016-12-03 19:22
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:5 
#include<stdio.h>
 int main (void)
 {
     int i, k, count = 0, t, j;
     char str[80];

     k = 0;
     while((str[k]= getchar())!= '\n')
         k++;
     
     str[k]= '\0';

     /*for(i=0;i<k;i++)
     {
         if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
             t=i;
             break;
     }*/
     for(j = 0; j < k-1; j++)
     {
         if(str[j]== ' '&& str[j+1]!= ' ')
         {
               count++;
          }
     }

     printf("%d\n",count);
     
     return 0;
 }

早知做人那么辛苦!  当初不应该下凡
2016-12-03 20:17
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:15 
统计单词个数用下面的代码就可以了~
程序代码:
/*#include<stdio.h>
int main (void)
{
    int i,k,count=1,t,j;
    char str[80];

    k=0;
    while((str[k]=getchar())!='\n')
        k++;
    str[k]='\n';

    for(i=0;i<k;i++)
    {
        if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
            t=i;              //1:如果单词第一个为空格,t没有赋值
        break;
    }//如果一口气输入多个空格,则单词数会比实际单词数多
    for(j=t;j<k;j++)
    {
        if(str[j]==' ')
            count++;
        
    }

        printf("%d\n",count);
        return 0;
}*/
#include<stdio.h>
int main()
{
    char ch;
    int count=0,a=0;

    while ((ch=getchar())!='\n')
        if (ch==' ')
            a=0;
        else 
            if (a==0)
        {
            count++;
            a=1;
        }

    printf("%d\n",count);

    return 0;
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-03 21:53
三多兄
Rank: 2
等 级:论坛游民
帖 子:6
专家分:25
注 册:2016-10-23
收藏
得分:0 
所谓“单词”是指连续不含空格的字符串,不需要限定a~z 和A~Z,楼上代码简洁,

#include<stdio.h>
int main()
{
    char ch;
    int count=0,a=0;

    while ((ch=getchar())!='\n')
        if (ch==' ')
            a=0;
        else
            if (a==0)
            {
               count++;
               a=1;
            }

    printf("%d\n",count);

    return 0;
}
2016-12-04 21:40
求学的兔子
Rank: 2
等 级:论坛游民
帖 子:21
专家分:46
注 册:2016-11-11
收藏
得分:0 
感觉是不是只要判断“空格”切“空格”前后都不是空格,这样单词数+1?
2016-12-05 15:15
快速回复:统计单词个数
数据加载中...
 
   



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

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