gpt4 book ai didi

找不到最常用的词

转载 作者:行者123 更新时间:2023-12-04 10:28:19 25 4
gpt4 key购买 nike

嘿,这是我在这里的第一篇文章。我被分配了一项练习来计算 C 编程语言中最常用的单词。首先也是最重要的是,我需要阅读一个数字,它告诉我必须阅读多少单词。然后我需要使用最大元素大小为 50 的 calloc。之后我读取了字符串。我最初的想法是创建一个一维数组,我稍后会按字母顺序排序,然后计算和打印最常见的单词会很容易。但经过几个小时的研究,我发现我需要使用二维数组,事情就失控了。我已经学习计算机科学 3 个月了,这个练习看起来很难。你还有其他建议吗?这个例子是这样的:

10
hello
world
goodbye
world
thanks
for
all
hello
the
fish

你好到目前为止我的代码是

int main()
{
int i, n, j, temp;
int *a;

printf("Eisagete to plhthos twn leksewn:");
scanf("%d",&n);

a = (int*)calloc(n,50);
printf("Eisagete tis %d lekseis:\n",n);
for( i=0 ; i < n ; i++ )
{
scanf("%d",&a[i]);
}

for (i = 0 ; i < ( n - 1 ); i++)
{
for (j = 0 ; j < n - i - 1; j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}

不要介意 printfs 它们是希腊文的,它们只是为了让它看起来更好。我还想指出,这个版本用于整数,而不是刚开始的字符串。我目前正在尝试线性搜索,但我不确定它是否有帮助

最佳答案

正如您所指出的,您显示的代码与读取和排序整数有关;它仅与字数统计问题松散相关。

你会如何计算每个数字的出现次数?你必须

  • 读下一个数字;
  • 如果您已经有了该数字的记数,则在该数字的记数中加一;
  • 如果您之前没有看到该数字,您可以为它创建一个计数并将其计数设置为 1。
  • 读完所有数字后,您搜索一组记数,寻找计数最大的那个。
    • 记录第一个条目的数量和计数。
    • 对于每个后续条目:
    • 如果计数大于当前最大值,记录新的最大计数和条目。
  • 打印关于具有最大计数的数字的信息以及该计数是多少。

用文字代替数字,大纲会非常相似。您可以分别为每个字符串(不同的词)分配存储空间。

边走边计算不同单词的数量或单词总数很容易。请注意,您不需要存储所有单词;您只需要存储不同的单词。排在首位的是计算机科学教育误入歧途;你不需要计数来让它工作(但你可能不得不忍受它在数据中;最简单的事情是忽略第一行输入,因为它真的没有多大帮助)。下一个最简单的事情是注意,除非他们向您撒谎,否则不同单词的最大数量将是指定的数量,因此您可以一次性预分配您需要的所有空间。

关于找不到最常用的词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20747843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com