| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 674 人关注过本帖
标题:c语言 统计由文件打开一篇文章的字母和空格的个数和频率
取消只看楼主 加入收藏
jh97066524
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-9-6
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
c语言 统计由文件打开一篇文章的字母和空格的个数和频率
#include<stdio.h>
#include<stdlib.h>
void main()
{   FILE *fp;
    char c[10000000000000];
    int letter[27];
    float rate[27];
        int i,j,k;
    float len=0;
    int temp=0;
    if((fp=fopen("wenzhang.txt","r"))==NULL)
    {    printf("can not open\n");
         exit(0);
    }
    fscanf(fp,"%c",c);
    for(k=0;k<=26;k++)
       {
            letter[k]=0;            
        }
    while(c[i]!=EOF)
    {    len++;}
        for(i=0;i<=len;i++)
          {
            if (c[i] == ' '){
                 letter[0]++;
            }
            if (c[i] == 'A' ||c[i] =='a'){
                letter[1]++;               
            }
            if (c[i] == 'B' ||c[i] =='b'){
                letter[2]++;               
            }
            if (c[i] == 'C' ||c[i] =='c'){
                letter[3]++;               
            }
            if (c[i] == 'D' ||c[i] =='d'){
                letter[4]++;               
            }
            if (c[i] == 'E' ||c[i] =='e'){
                letter[5]++;               
            }
            if (c[i] == 'F' ||c[i] =='f'){
                letter[6]++;               
            }
            if (c[i] == 'G' ||c[i] =='g'){
                letter[7]++;               
            }
            
            if (c[i] == 'H' ||c[i] =='h'){
                letter[8]++;               
            }
            if (c[i] == 'I' ||c[i] =='i'){
                letter[9]++;               
            }
            if (c[i] == 'J' ||c[i] =='j'){
                letter[10]++;               
            }
            if (c[i] == 'K' ||c[i] =='k'){
                letter[11]++;               
            }
            if (c[i] == 'L' ||c[i] =='l'){
                letter[12]++;               
            }
            if (c[i] == 'M' ||c[i] =='m'){
                letter[13]++;               
            }
            if (c[i] == 'N' ||c[i] =='n'){
                letter[14]++;               
            }
            if (c[i] == 'O' ||c[i] =='o'){
                letter[15]++;               
            }
            if (c[i] == 'P' ||c[i] =='p'){
                letter[16]++;               
            }
            if (c[i] == 'Q' ||c[i] =='q'){
                letter[17]++;               
            }
            if (c[i] == 'R' ||c[i] =='r'){
                letter[18]++;               
            }
            if (c[i] == 'S' ||c[i] =='s'){
                letter[19]++;               
            }
            if (c[i] == 'T' ||c[i] =='t'){
                letter[20]++;               
            }
            if (c[i] == 'U' ||c[i] =='u'){
                letter[21]++;               
            }if (c[i] == 'V' ||c[i] =='v'){
                letter[22]++;               
            }
            if (c[i] == 'W' ||c[i] =='w'){
                letter[23]++;               
            }
            if (c[i] == 'X' ||c[i] =='x'){
                letter[24]++;               
            }if (c[i] == 'Y' ||c[i] =='y'){
                letter[25]++;               
            }if (c[i] == 'Z' ||c[i] =='z'){
                letter[26]++;               
            }
                  
             }
        
        for(j=0;j<=26;j++){
            rate[j] = letter[j]/len;            
        }
        fclose(fp);
printf("空格的数量:%d,占全文字符的频率为:%lf\n",letter[0],rate[0]);
printf("A的数量:%d,占全文字符的频率为:%lf\n",letter[1],rate[1]);
printf("B的数量:%d,占全文字符的频率为:%lf\n",letter[2],rate[2]);
printf("C的数量:%d,占全文字符的频率为:%lf\n",letter[3],rate[3]);
printf("D的数量:%d,占全文字符的频率为:%lf\n",letter[4],rate[4]);
printf("E的数量:%d,占全文字符的频率为:%lf\n",letter[5],rate[5]);
printf("F的数量:%d,占全文字符的频率为:%lf\n",letter[6],rate[6]);
printf("G的数量:%d,占全文字符的频率为:%lf\n",letter[7],rate[7]);
printf("H的数量:%d,占全文字符的频率为:%lf\n",letter[8],rate[8]);
printf("I的数量:%d,占全文字符的频率为:%lf\n",letter[9],rate[9]);
printf("J的数量:%d,占全文字符的频率为:%lf\n",letter[10],rate[10]);
printf("K的数量:%d,占全文字符的频率为:%lf\n",letter[11],rate[11]);
printf("L的数量:%d,占全文字符的频率为:%lf\n",letter[12],rate[12]);
printf("M的数量:%d,占全文字符的频率为:%lf\n",letter[13],rate[13]);
printf("N的数量:%d,占全文字符的频率为:%lf\n",letter[14],rate[14]);
printf("O的数量:%d,占全文字符的频率为:%lf\n",letter[15],rate[15]);
printf("P的数量:%d,占全文字符的频率为:%lf\n",letter[16],rate[16]);
printf("Q的数量:%d,占全文字符的频率为:%lf\n",letter[17],rate[17]);
printf("L的数量:%d,占全文字符的频率为:%lf\n",letter[18],rate[18]);
printf("S的数量:%d,占全文字符的频率为:%lf\n",letter[19],rate[19]);
printf("T的数量:%d,占全文字符的频率为:%lf\n",letter[20],rate[20]);
printf("U的数量:%d,占全文字符的频率为:%lf\n",letter[21],rate[21]);
printf("V的数量:%d,占全文字符的频率为:%lf\n",letter[22],rate[22]);
printf("W的数量:%d,占全文字符的频率为:%lf\n",letter[23],rate[23]);
printf("X的数量:%d,占全文字符的频率为:%lf\n",letter[24],rate[24]);
printf("Y的数量:%d,占全文字符的频率为:%lf\n",letter[25],rate[25]);
printf("Z的数量:%d,占全文字符的频率为:%lf\n",letter[26],rate[26]);
    /*printf("%lf",len);*/
}




为什么不能显示???求大神解答  谢谢了  在线等
2015-09-06 21:15
jh97066524
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-9-6
收藏
得分:0 
回复 2楼 林月儿
图片附件: 游客没有浏览图片的权限,请 登录注册



问下为什么显示不出来呢?
会不会是这里有问题
  while(c[i]!=EOF)
    {    len++;}

或者
 fscanf(fp,"%c",c);
2015-09-06 21:39
jh97066524
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-9-6
收藏
得分:0 
回复 4楼 wmf2014
新手....
2015-09-06 21:56
快速回复:c语言 统计由文件打开一篇文章的字母和空格的个数和频率
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017382 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved