文章單詞頻數統計 (C語言版)

2021-09-20 04:24:47 字數 2187 閱讀 1166

將.txt檔案讀入記憶體中;

設定乙個world結構體用於儲存單個單詞,設定乙個n結構體用於統計單詞總個數,並在其中定義乙個world結構體型別的指標,以便為後續操作提供便利;

將記憶體中的資料進行分割,將單詞存入world結構體中;

統計單詞出現的頻數;

依據頻數選取適當的排序演算法進行排序,這裡程式的採用的是希爾排序;

對結果進行輸出

test.**件:

#include#include#include#include#include#define max 500000                     //開闢最大word型別空間個數

#define max_size 40 //單詞的最大長度

typedef struct word

word; //儲存每個單詞

typedef struct num

n;

char* read_in(); //讀取檔案

n deal_string(n t,char *str); //處理字串

void deal_struct(n *pnum ,char *str); //word型別變數賦值

n get_factor(n t); //獲取頻數

void shell(n t,int len,int gap);

n shell_sort(n t); //希爾排序/shellpaixu

void show(n t); //輸出

test.cpp檔案:

#include "test.h"

char* read_in() //將檔案內容讀入記憶體

void deal_struct(n *pnum ,char *str)

n deal_string(n t,char *str) //處理字串,將檔案中的單詞存在結構體中

; //定義乙個陣列暫存當前單詞

int flag = 0; //設定標誌位

int i = 0;

while(*str != '\0')

else if(flag) //只有符合第乙個條件,才會進入此if語句

str++; //字元位置加一

} printf("單詞共個數為====%ld\n",t.length);

return t;

}n get_factor(n t)

} } return t;

}void shell(n t,int len,int gap)

else

}t.brr[j+gap] = temp;

} }n shell_sort(n t)

; int lend = sizeof(drr)/sizeof(drr[0]);

for(int i = 0;i < lend;i++)

return t;

} n insert_sort(n t)

else

}t.brr[j+1] = temp;

} return t;

}void show(n t)

}}

main()函式:

#include "test.h"

int main()

程式輸出:

英文單詞排序(c語言版)

本題要求編寫程式,輸入若干英文單詞,對這些單詞按長度從小到大排序後輸出。如果長度相同,按照輸入的順序不變。輸入格式 輸入為若干英文單詞,每行乙個,以 作為輸入結束標誌。其中英文單詞總數不超過20個,英文單詞為長度小於10的僅由小寫英文本母組成的字串。輸出格式 輸出為排序後的結果,每個單詞後面都額外輸...

c語言計算單詞頻率

題目要求是找出一篇文章頻率最高的十個單詞,而且也可以是比較大的檔案,開始看的題目的要求,只是小小的構思了一下,想到應該用到檔案的讀寫,因為對c 檔案的讀寫不是很熟練,所以選擇使用c,本來想的是要用陣列來存放單詞,比如用乙個二維陣列存放單詞,再對應乙個一維陣列存放個數,然後對陣列進行排序來找出數目最多...

C語言版掃雷

用c語言實現掃雷,首先應該有基本的思路,建立兩個相同大小的陣列,乙個用於布雷 初始化為全0,布雷時將雷置為1 另乙個給使用者展示 初始化為星號,使用者輸入座標後統計周圍雷的分布並列印雷的個數 由於需要統計每個座標周圍類的個數,所以將陣列建立大一圈,以方便統計。若輸了,列印出雷陣告訴玩家雷的分布。具體...