【求检错】C程:读取一个英文文本文件,对单词进行统计,并按照出现次数从低到高排序并输出...
【实验文本】Teacher:WhenwasRomebuilt?Tom:Atnight.Teacher:Whotoldyouthat?Tom:You-did.Yousaid...
【实验文本】
Teacher: When was Rome built? Tom: At night. Teacher: Who told you that?
Tom: You-did. You said Rome wasn't built in a day.
【现在编的程序】
出现的问题
1)最后的printf输出.....根本提供不下来...
2)如果把最后的printf去掉,看前面的内容就会发现有奇怪的东西混进去了:
3)然后当出现第一个重复的节点teacher之后,后面不管有没有重复都算是重复了...:
问题一....那个是根本停不下来.... 展开
Teacher: When was Rome built? Tom: At night. Teacher: Who told you that?
Tom: You-did. You said Rome wasn't built in a day.
【现在编的程序】
出现的问题
1)最后的printf输出.....根本提供不下来...
2)如果把最后的printf去掉,看前面的内容就会发现有奇怪的东西混进去了:
3)然后当出现第一个重复的节点teacher之后,后面不管有没有重复都算是重复了...:
问题一....那个是根本停不下来.... 展开
1个回答
展开全部
你的代码逻辑有点乱,我初步看了,至少在第37-39行是有问题的,这3行的意思是:如果读取的字符不是字母就继续读,可是如果到了文件末尾,你的代码也不会停下来,因为你没有调用feof(in)测试是否到达了文件末尾。
这种文本统计的问题,用C做实在费事。我用C++做过,也很费事。后来用Perl做过,只需要一行代码就够了。
perl -E "for(<>){$n{$_}++ for /(\w+)/g} say $n{$_}, ' ',$_ for sort keys %n" file.txt
你可以安装perl后,试试。
有C的基础,建议你学学Perl或其他动态语言,对日常工作帮助会很大。
祝你成功!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询