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;
}

07-28 01:39