当前位置:编程学习 > C/C++ >>

c语言程序设计 单词统计

要求:(1)输入任意一段英文
(2)统计(1)中个字母出现频率的高低输出前五个单词
(3)具有输入输出界面
答案:又是这个问题。。我昨天刚好做了个。。#include "stdio.h" 
#include "string.h"
void main()
{
char ch='\0';
char word[1000][20]; /* 最多存1000个不同单词,每个单词在20个字符内。 */
int count_word[1000]={0}; /* 每个单词对应个数 */
int i=0,j=0,k=0,flag=2,total=0,l=0,max,maxno;
float percent; /* 每个单词出现频率 */
printf("请输入一段英文文章,并以#标志结束:\n");
while((ch=getchar())!='#')
{
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
{
if(ch>='A'&&ch<='Z') ch+=32;
flag=0;
word[i][j]=ch;
j++;
}
else flag++;
if(flag==1)
{
total++;
word[i][j]='\0';
count_word[i]++;
for(k=0;k<i;k++)
{
if(strcmp(word[i],word[k])==0)
{ count_word[k]++; count_word[i]=0; i--; break; }
}
i++;
j=0;
}
}
printf("单词 出现次数 百分比\n");

printf("----------------------------------------");
for(l=0;l<5;l++)
{
max=0;
maxno=0;
for(k=0;k<i;k++)
if (count_word[k]>max)
{
maxno=k;
max=count_word[k];
}
if (max==0) break;
printf("\n%-20s",word[maxno]);
printf("%-10d",count_word[maxno]);
percent=100.0*count_word[maxno]/total;
printf("%.2f%%",percent);
count_word[maxno]=0;
}
printf("\n谢谢使用。。嘿嘿。");
getchar();

}在vc++6.0下测试通过。。有啥不懂的可以问我。。我qq270173053。。

上一个:C语言表达式求值
下一个:C语言学生成绩系统程序

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,