当前位置: 代码迷 >> C语言 >> [求助]单词计数这个题目谁会做
  详细解决方案

[求助]单词计数这个题目谁会做

热度:265   发布时间:2007-09-23 14:49:05.0
[求助]单词计数这个题目谁会做

5 - 单词计数
时间限制 1000 毫秒
内存限制 32768 K字节

问题描述
输入一些单词,统计各个单词出现的次数。
输入
输入有很多行,行数<10000。每行一个单词,单词由英文字母构成,不包含其他字符。单词的长度<30个字符。
输出
输出包含多行。每行包括一个单词和这个单词在输入中出现的次数,两者之间用一个空格隔开。这些行按照单词字符串从小到大的顺序排序。
输入样例
red
blue
blue
red
orange
black
blue

输出样例
black 1
blue 3
orange 1
red 2

希望代码写得时候加上一些解释

搜索更多相关的解决方案: 单词  计数  

----------------解决方案--------------------------------------------------------

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

int get_word(char array[][32]) /* 输入单词 */
{
int i=0;
printf("Enter a word:");
scanf("%s",array[i]);
while(strcmp(array[i],"#")!=0) /* 输入单词#号结束 */
{
i++;
printf("Enter a word:");
scanf("%s",array[i]);
}
return 0;
}

int count_word(char array[][32],int i) /* 统计个数 */
{
int j=0;
int count=0;
while(strcmp(array[j],"#")!=0)
{
if(strcmp(array[j],array[i])==0&&j<i)
break;
else
if(strcmp(array[j],array[i])==0)
count++;
j++;
}
if(count)
printf("%s %d\n",array[i],count);
return 0;
}

int main()
{
char array[1000][32];
int i=0;

get_word(array);
while(strcmp(array[i],"#")!=0)
{
count_word(array,i);
i++;
}
return 0;
}


----------------解决方案--------------------------------------------------------
B树



by 雨中飞燕 QQ:78803110 C/C++讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url] [url=http://blog.programfan.com/article.asp?id=24801]请不要写出非int声明的main函数[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
----------------解决方案--------------------------------------------------------
  相关解决方案