當前位置:成語大全網 - 書法字典 - 如何輸出字典中最多的元素

如何輸出字典中最多的元素

只是用C語言寫的,功能實現了,但是還有很多可以優化的地方。自己改吧。如果妳不明白,問:

#包含?& ltstdio.h & gt

#包含?& ltstring.h & gt

//可以統計的最大字數可以自己改。

#定義?MAX_WORD_COUNT?500

//結構,該結構存儲每個單詞及其對應的數字。

typedef?struct?字數

{

夏爾?cWord[20];

int?iCount

} T _ WordCount

int?CalcEachWord(const?夏爾?* pText);//計算字數,輸出信息等。

作廢?LowerText(char?* pText);//將單詞變成小寫

作廢?SwapItem(T_WordCount?*ItemA,?T_WordCount?*?ItemB);//交換兩個元素

作廢?SortWord(T_WordCount?* pWordSet);//排序

int?main(int?argc,?夏爾?*argv[])

{

//測試文本

夏爾?pText[]?= "文字?有嗎?有嗎?壹個?h-as?更多?有嗎?更多?哈-S?空白?更多?空白?還是?更多?還是?空白?兩個世界之間。”;

printf("The?文字?是嗎?:\ n ");

printf("-\ n ");

printf("%s\n ",pText);

printf("-\ n ");

printf("The?top?5?文字?是嗎?:\ n ");

CalcEachWord(pText);?回歸?0;

}

int?CalcEachWord(const?夏爾?*pText)

{

夏爾?cTmp[20]?=?{0};?

int?我=?0;

夏爾?*pTmp =?cTmp

int?iFlag =?0;

T_WordCount?two dset[MAX _ WORD _ COUNT];

memset(two dset,?0,?sizeof(two dset));

什麽時候?(*pText?!=?'\0')

{?

如果?((*pText?& gt=?壹個嗎?& amp& amp?*pText?& lt=?z’)?||?(*pText?& gt=?壹個嗎?& amp& amp?*pText?& lt=?z '))

{

*pTmp?=?* pText

ptmp++;

}

不然呢?如果?(*pText?==?'-')

{

++ pText;

繼續;

}

其他

{?

如果?(strlen(cTmp)?& gt?0)

{

LowerText

iFlag?=?0;

為了什麽?(我?=?0;?我?& lt?最大字數;?++i)

{

?如果?(strlen(tWordSet[i])。cWord)?& gt?0)

?{

?如果?(strcmp(tWordSet[i])。cWord?cTmp)?==?0)

?{

iFlag?=?1;

t數據集[i]。icount++;

打破;

?} ?

?}

?其他

?{

?strcpy(tWordSet[i].cWord?cTmp);

?t數據集[i]。iCount?=?1;

?iFlag?=?1;

?打破;

?}

}

如果?(!iFlag)

{

?printf("沒有?更多?空間?去哪?保存?詞。\ n ");

}

}

內存集(cTmp,0,?20);

pTmp?=?cTmp

}

++ pText;

}

//排序?sort word(two dset);

為了什麽?(我?=?0;?我?& lt?5;?++i)

{

如果?(strlen(tWordSet[i])。cWord)?& gt?0)

{

printf("%s:%d\n ",tWordSet[i]。cWord,tWordSet[i]。iCount);

}

}

回歸?0;

}

作廢?LowerText(char?*pText)

{

夏爾?*pTmp?=?pText

什麽時候?(*pTmp?!=?'\0')

{

如果?((*pTmp?& gt=?壹個嗎?& amp& amp?*pTmp?& lt=?z '))

{

*pTmp?+=?32?;

}

ptmp++;?}

}

作廢?SwapItem(T_WordCount?*ItemA,?T_WordCount?*?項目b)

{

T_WordCount?Tmp

memset(& amp;Tmp,?0,?sizeof(T _ word count));

strcpy(Tmp.cWord,?ItemA-& gt;cWord);

Tmp.iCount?=?ItemA-& gt;iCount

strcpy(ItemA-& gt;cWord?item B- & gt;cWord);?ItemA-& gt;iCount?=?item B- & gt;iCount

strcpy(item B- & gt;cWord?tmp . cword);?item B- & gt;iCount?=?Tmp.iCount

}

//冒泡排序算法

作廢?SortWord(T_WordCount?*pWordSet){

int?I,j;?

為了什麽?(j?=?0;?j?& lt?MAX_WORD_COUNT?-?1;?j++)?

{

為了什麽?(我?=?0;?我?& lt?MAX_WORD_COUNT?-?1?-?j;?i++)?

{ ?

如果?(pWordSet[i]。iCount?& lt?pWordSet[i+1]。iCount)?

{ ?

SwapItem(& amp;pWordSet[i],?& amppWordSet[I+1]);

} ?

}?

}

}

測試結果截圖: