| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1454 人关注过本帖
标题:[求助]统计单词出现个数,请分析一下错误在哪里?
只看楼主 加入收藏
jun0325
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-8-8
收藏
 问题点数:0 回复次数:9 
[求助]统计单词出现个数,请分析一下错误在哪里?

题目:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开.
程序如下:
#include<stdio.h>
#include<string.h>
main()
{
char string[81];
int i,num=0,word=0;
char c;
gets(string);
for(i=0;(c=string[i])!='\0';i++)
if(c=='')
word=0;
else if(word==0)
{
word=1;
num++;
}

printf("There are %d words in the line.\n",num);
puts(string);
getch();
}
注:num用来统计单词个数,word作为判别是否单词的标志,若word=0,表示未出现单词,如出现单词word就置1.

运行情况:
i have a dog.
There are 1 words in the line.

感到郁闷,我明明输入了四个单词,怎么结果显示只有一个单词呢?我检查了算法,语法都没有错,请大虾帮我分析一下错误在哪里,谢谢!

搜索更多相关主题的帖子: 单词 统计 
2007-08-18 10:43
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
if(c=='')
这个明显抄课本代码吧,要不然怎么会写出这个东东
2007-08-18 10:49
jun0325
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-8-8
收藏
得分:0 

难道是if(c=='')的问题吗?


数据结构+算法+程序设计方法+语言工具和环境=程序
2007-08-18 14:55
jun0325
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-8-8
收藏
得分:0 
有高手可以帮忙解决这个问题吗?

数据结构+算法+程序设计方法+语言工具和环境=程序
2007-08-18 14:57
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
收藏
得分:0 
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main()
{
char string[81];
int i,num=0,word=0;
char c;
gets(string);
for(i=0;(c=string[i])!='\0';i++)
if(c==' ') word=0;
else if(word==0)
{
word=1;
num++;
}
printf("There are %d words in the line.\n",num);
puts(string);
getch();
return 0;
}//不知道你有没有发现什么不一样

偶学编程,也许本身就是一个错。。。
2007-08-18 15:01
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
收藏
得分:0 
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main()
{
char string[81];
int i,word=0;
gets(string);
if(string[0]!=' ') word++;
for(i=1;string[i];i++)
if(string[i]==' ' && string[i+1]!=' ') word++;
printf("There are %d words in the line.\n",word);
puts(string);
getch();
return 0;
}

偶学编程,也许本身就是一个错。。。
2007-08-18 15:10
xiaosan669
Rank: 1
来 自:西北工业大学
等 级:新手上路
帖 子:78
专家分:0
注 册:2007-3-9
收藏
得分:0 
以下是引用jun0325在2007-8-18 14:55:46的发言:

难道是if(c=='')的问题吗?

你看下这两个有什么不同



if(c=='')与if(c==' ')



这样应该没有问题了


========== 我的世界,我说了算! ==========
2007-08-18 15:17
xiaosan669
Rank: 1
来 自:西北工业大学
等 级:新手上路
帖 子:78
专家分:0
注 册:2007-3-9
收藏
得分:0 

#include<stdio.h>
#include<string.h>

main()
{
char string[81];
int i,num=0,word=0;
char c;
gets(string);
for(i=0;(c=string[i])!='\0';i++)
if(c==' ')
word=0;
else if(word==0)
{
word=1;
num++;
}

printf("There are %d words in the line.\n",num);
}


========== 我的世界,我说了算! ==========
2007-08-18 15:22
knight4423
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-1-29
收藏
得分:0 

这个问题提的不错,学习.

2007-08-18 16:22
dazhiye
Rank: 1
等 级:新手上路
帖 子:31
专家分:5
注 册:2010-1-18
收藏
得分:0 
回复 7楼 xiaosan669
你看下这两个有什么不同



if(c=='')与if(c==' ')



这样应该没有问题了 #include"stdio.h"
#include"string.h"
void main()
{
    int num=0,i=0;
    char str[100],c;
    printf("请输入一行字符,系统会统计单词个数:");
    gets(str);
    do
    {
        while((c=str[i])=='')i++;
        if(c!='\0')num++;
        while((c=str[i])!=''&&c!='\0')i++;
    }while(c!='\0');
    printf("number of woord:%d\n",num);

}
帮我解决了问题,谢啦哈
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 dazhiye 于 2011-4-10 16:47 编辑 ]
2011-04-10 16:45
快速回复:[求助]统计单词出现个数,请分析一下错误在哪里?
数据加载中...
 
   



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

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