C结构问题
我有一个词表和相应的频率:
word 10
the 50
and 35
overflow 90
如何将这些数据保存在结构中?我应该使用二维数组吗?我还需要注意的是,我必须根据它们的频率对它们进行排序,所以我认为一个某种排序的数组然后应用qsort,但是我需要保留整数,所以如果我使用char数组,我必须来回转换
最佳答案
可能是一个结构:
struct WordInfo {
char *word;
int frequency;
};
然后,可以创建这些结构的数组:
struct WordInfo words[128]; // whatever
最后编写一个比较器函数,如下所示:
int word_compare(const void *p1, const void *p2)
{
struct WordInfo *s1 = p1;
struct WordInfo *s2 = p2;
return s1->frequency - s2->frequency;
}