將.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 另乙個給使用者展示 初始化為星號,使用者輸入座標後統計周圍雷的分布並列印雷的個數 由於需要統計每個座標周圍類的個數,所以將陣列建立大一圈,以方便統計。若輸了,列印出雷陣告訴玩家雷的分布。具體...