一个简单的c程序
題目:查詢一篇英文中出現的次數最多的10個單詞
分析:雖然題目只是簡單的要求找出出現頻率最多的10個單詞。但是在實際的編程中,遇到的問題還是很多的。首先,得解決文件的打開問題,也就是說文件是從那個地方讀取出來了的,在這里,我采用的是C語言中的文件的打開函數fopen()。根據書上的例子,然后在做了一些修改,基本上可以實現打開文件的目的。其次,要解決的是打開之后,對數據的分析。在這一步,第一,將文章出現的大寫都轉換成小寫;第二,對這些字符串進行統計,出現的次數做一個統計。第三,對這些數據進行比較,也就是比較關鍵的排序。在這一步,我才用的是冒泡排序法。在排序的過程中,由于有許多,細節方面的問題沒有處理好,所以整個程序的運行,還存在一些問題,并且整這個程序顯得比較無序和雜亂,以后的幾天我會繼續對此程序進行后續的完成。下面,附上源程序:
源程序:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define M 100000
#define N 10
struct word
?{
?char w[50];
?int n;
?}w[M];
?
?int main()
{
?FILE *fp;
?char infile[30],ch;
?int i,flag;
?printf("請輸入文件地址:");
?scanf("%s",infile);
?if((fp=fopen(infile,"r"))==NULL)
?{printf("無法打開此文件!\n");
?exit(0);}
?while((ch=fgetc(fp))!=EOF)
?{??
??? fclose(fp);
?????? for(i=0;i<N;i++)ko[i]=0;
?????? scanf("%d",&n);
?????? fg=0;
?????? i=0;
?????? strncpy(wd,ko,N);
??? while(fg<at)
?{??
?? if(isalpha(t[fg]))
?? {
????? wd[i]=t[fg];
??
??? i++;
?? }
?? if(t[fg]==32&&i>0)break;
?????? fg++;
}
??? strncpy(root.a,ko,N);
strcpy(root.a,wd);
root.i=1;
root.left=NULL;
root.right=NULL;
i=0;
strncpy(wd,ko,N);
??? while(fg<at)
{??
?? if(isalpha(t[fg]))
?? {
????? wd[i]=t[fg];
??? i++;
?? }
?? if(t[fg]==32&&i>0)break;
??????? fg++;
}
??? else
??? {
???????????? if(flag==1)
???? {?? b[i]='\0';
????? for(j=0;j<k;j++)
????? {
????????? if(strcmp(b,w[j].w)==0)
?????? {m=1;break;}
????? }
?????? if(m) w[j].n++;
?????? else
?????? {w[k].n=1;strcpy(w[k].w,b);k++;}
???? }
??
??? ?? if('A'<=ch && ch<='Z') ch+=32;
?????? if('a'<=ch && ch<='z')
??? {b[i]=ch;i++;flag=1;}
??}
?}
?}
?for(i=0;i<k;i++) { printf("%s %d\n",w[i].w,w[i].n);}
?printf("\n");
?for(i=0;i<k&&i<5;i++)
?{
??t=0;
??while(w[t].n==0) t++;
??for(j=1;j<k;j++)
??{
???if(w[j].n>w[t].n) t=j;
???else
????if(w[j].n==w[t].n)
????{
?????if(strcmp(w[j].w,w[t].w)<0)
??????t=j;
????}
??}
??printf("%s?? 出現次數:%d\n",w[t].w,w[t].n);
??w[t].n=0;
?}
?return 0;
}
總結:本次的程序,由于本人對編程的生疏,導致本程序失敗,問題不少,并且對基本的要求都沒有完成。在以后的這周,會在空閑時間對程序進行改善,達到簡化的目的。
轉載于:https://www.cnblogs.com/wuwei123/p/3577324.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 2014-2-28 思杨的语言能力
- 下一篇: Flex4/Flash多文件上传(带进度