泊肃叶公式:谁能帮我实现下面C语言题目中的第六部啊?

来源:百度文库 编辑:高考问答 时间:2024/04/29 20:18:41
#include "stdio.h"
#include <stdlib.h>

void main()
{
FILE *f;
char a[50],ch,ans;
int temp1[27]={0},temp2[27]={0};
int i,num,n=1;
long letter=0,word=0;
f=NULL;
main: printf("\t\t英文文章统计程序\n(1)打开文件,载入英文文章\n(2)统计文章中英文的单词数\n(3)统计文章中标点符号数目\n(4)统计文章的句子数目\n(5)统计文章各英文字母出现的频率\n(6)查询文章某个单词出现的次数\n(7)退出\n请键入相应操作的编号:"); /*主界面*/
scanf("%d",&i);
getchar();

if(i==1) /*打开文章*/
{
first: printf("请输入你要打开的文章:");
/*getchar();*/
gets(a);
load: if((f=fopen(a,"r"))!=NULL)
{
system("CLS");
printf("文章读取成功,请继续进行操作\n");
goto main;
}
else
{
printf("请输入正确的文件名,以便进行操作:\n");
goto first;
}
}

else if(i==5) /*统计各字母频率*/
{
if(f!=NULL)
{
printf("各字母在文章中出现的频率:(出现频率=该字母出现的次数/总字母数)\n");
while((ch=fgetc(f))!=EOF)
{
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
{
letter++;
for(i=65;i<=90;i++)
{
if(ch==i)
{
temp1[i-65]++;
break;
}
}
for(i=97;i<=122;i++)
{
if(ch==i)
{
temp2[i-97]++;
break;
}
}
}
}
printf("%ld\n",letter);
for(i=65;i<91;i++)
{
printf("%c:%2d% ",i,temp1[i-65]*100/letter);
if((i+1)%5==0)
printf("\n");
}
printf("\n");
for(i=97;i<=122;i++)
{
printf("%c:%2d% ",i,temp2[i-97]*100/letter);
if((i+4)%5==0)
printf("\n");
}
printf("\n");
printf("是否继续回到主界面进行操作?(Y/N)");
scanf("%c",&ans);
if(ans=='Y'||ans=='y')goto load;
else exit(0);
}
else
{
printf("请先进行操作1\n");
goto first;
}
}

if(i==7)exit(0);

else /*当输入其他非操作编号的数字时*/
{
system("CLS");
printf("请输入正确的操作编号\n");
goto main;
}
}
1. 菜单如下
(1)打开文件,载入英文文章
(2)统计文章中英文的单词数
(3)统计文章中标点符号数目
(4)统计文章的句子数目
(5)统计文章各英文字母出现的频率
(6)查询文章某个单词出现的次数
(7)退出
2. 对可能的输入错误进行必要的判断

其他的都已经做出来了,第六步不会,请达人们救我~(由于字数限制只列出一部分代码)

while((ch=fgetc(f))!=‘ ’&&ch=fgetc(f))!=EOF)
{for(i=0;i<27;i++)
{temp1[i]=ch;
if(strcmp(temp1,数组2是要找的那个词)=0);n++;}}

用字符串的比较
试试吧,不知道对不对,