/*1.读入一个英文文本文件,英文中有字母、数字、其它字符,无汉字,文件有多行。
2.编写函数实现:统计字母的出现频度,并显示结果。
3.编写函数实现:统计其中单词的个数,并显示结果。(单词个数以WORD统计作为参考,不一定100%相同。)
4.编写函数实现:找出最长的单词,并显示单词及其长度。
5.编写函数实现:统计出现的整数,存入一维数组,并显示结果。
(1) 比如文件中有两行:
"abc 123 W 6 www 9."
"teacher 10 student 7."
(2) 分析得到5个数:123、6、9、10、7。
(3) 定义数组int a[1000]
(4) a[0]=123,a[1]=6,a[2]=9,a[3]=10,a[4]=7。 注:可以利用下标或字符型指针处理字符串。
说明:
1、需要用到《文件》这一章的知识点,大家自学。(可以参考书340页的例 10.2、书344页上半页的程序)。
2、【英文文本文件】指的是文本文件,不是二进制文件。
3、文本文件的内容可事先固定好。
4、文件读取中,只用"r"功能。
5、把所有内容读到一个一维数组或二维数组中。
6、把这个数组传给函数。(参数是数组)*/
#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *fp;
char str[100][100];
int i=0;
if((fp=fopen("D:\\文本.txt","r"))==NULL)
{
printf("无法打开此文件\n");
exit(0);
}
while(fgets(str[i],100,fp)!=NULL)
{
printf("%s",str[i]);
}
}
void zimupinlv(int str[])
{
int i,j,sum=0,
char c[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
while(str[i]>c[0]&&str[i]<c[26])
{
for(j=0;j<26;j++)
{
if(str[i]==c[j])
{
sum++;
c[j]++;
}
}
}
for(j=0;j<26;j++)
{
printf(" %c出现的频率为:%f",c[j],c[j]/sum);
}
}
void dancigeshu(int str[])
{
int a=0,i;
while(str[i]!='\n')
{
if(str[i]!=' ')
{
a++;
}
}
printf("单词的个数为:\n",a);
}
void zuichangdanci(int str[])
{
int i,j,d=0,longest=0;//d为单词长度,longest为最长单词
for(i=0;str[i]!='\0';i++)
{
d++;
if(str[i]==32)//空格重新计数
{
d=0;
}
else if(d>longest)
{
longest=d;
j=i;
}
}
for(i=j-longest+1;i<=j;i++)
{
printf("最长单词为:%c",str[i]);
}
}
void zhengshu(int str[])
{
int i,z=0;
if(str[i]%1==0)
{
printf("整数有:",str[i]);
z++;
}
}
请问这个程序怎么样运行出结果,就是让他显示出函数设置中的内容。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- vig_d 2021-06-07 20:26关注
37到57行
void zimupinlv(char str[]){ __int64 length=strlen(str); __int64 a[26]={0};//小写字符 __int64 b[26]={0};//大写字符 double cnt=0; for(__int64 i=0;i<length;++i){ if(str[i]>='a'&&str[i]<='z'){ ++a[str[i]-'a']; ++cnt; } if(str[i]>='A'&&str[i]<='Z'){ ++b[str[i]-'A']; ++cnt; } } for(__int64 i=0;i<26;++i){//小写 printf("%c出现的频率为: %f",i+'a',a[i]/cnt); } printf("\n"); for(__int64 i=0;i<26;++i){//大写 printf("%c出现的频率为: %f",i+'A',b[i]/cnt); } }
你这怕是c语言作业吧,虽然我是新手,但是你这代码问题太多了,我敲这点代码纯属无聊,拜拜~
解决 无用评论 打赏 举报
悬赏问题
- ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀
- ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
- ¥15 关于#hadoop#的问题
- ¥15 (标签-Python|关键词-socket)
- ¥15 keil里为什么main.c定义的函数在it.c调用不了