实验6-9 统计一行文本的单词个数 (15分)

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

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

输出格式:
在一行中输出单词个数。

输入样例:
Let’s go to room 209.
输出样例:
5
作者
张彤彧
单位
浙江大学
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
C (gcc 6.5.0)

#include<stdio.h>
int main(){

char s[100];
int i=0,count=0;
gets(s);
while(s[i]!='\0'){
	if(s[i]!=' '&&s[i+1]==' '){
		count++;
	}
	if(s[i]!=' '&&s[i+1]=='\0'){
		count++;
	}
	if(s[i]!=' '&&s[i+1]=='\n'){
		count++;
	}
	i++;
}
printf("%d",count);
return 0;

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单词统计查询分析模块是一个非常常见的数据处理模块,它可以统计一个文本文件中各个单词出现的频率,并且可以进行一些简单的查询和分析。在Hadoop实验中,我们一般会使用MapReduce框架来实现这个模块。下面是一些可能出现的问题: 1. 数据预处理:在实现单词统计查询分析模块之前,需要对原始数据进行一些预处理,比如去掉标点符号、转换为小写字母等。如果这一步没有处理好,可能会导致结果不准确。 2. 设置分隔符:在MapReduce框架中,需要设置分隔符来将文本文件中的每一行分成不同的单词。如果分隔符设置不当,可能会导致单词划分不准确,进而影响统计结果。 3. 数据倾斜:在处理大规模数据时,有可能会遇到数据倾斜的问题,即某些单词的出现频率远高于其他单词。这种情况下,需要采取一些特殊的处理方法,比如在Reduce阶段使用Combiner来减少网络传输量,或者使用Partitioner来将数据均匀地分配到不同的Reduce Task中。 4. 内存溢出:在MapReduce框架中,Map和Reduce过程中会使用内存来存储中间结果。如果数据量过大,可能会导致内存溢出。为了防止这种情况发生,可以通过增加Reducer的数量来减少每个Reducer需要处理的数据量,或者在Map过程中使用Combiner来减少中间结果的数量。 5. 输出格式设置:在MapReduce框架中,需要设置输出的格式。如果格式设置不当,可能会导致结果无法正确地读取和解析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值