c - 计算一个值在数组中出现次数的最佳方法是什么?

标签 c function pointers parameters

我接到一项任务,要编写一个程序,该程序从文本文件中将多个赋值标记读入数组,然后计算特定括号内有多少标记,即 40-49、50-59 等. 文本文件中的值为-1表示作业未上交,值为0表示作业太差以至于未评分。

我可以使用几个 for 循环轻松地做到这一点,然后使用 if 语句来检查值,同时递增适当的整数来计算出现的次数,但是为了获得更高的分数,我需要以“更好”的方式实现该计划。执行此操作的更好、更有效的方法是什么?我现在不是在寻找代码,只是简单地“这是你应该做的”。我试过想不同的方法来做到这一点,但似乎没有一个更好,而且我觉得我只是为了它而试图让它变得复杂。

我尝试使用将值存储在其中的二维数组作为函数的参数,然后使用该函数打印出特定值的出现次数,但我无法将其编译为我的使用二维数组作为参数的语法是错误的,我不太确定如何执行此操作。

如有任何帮助,我们将不胜感激。

最佳答案

为什么需要几个 for 循环?一个就够了。

创建一个大小为 10 的数组,其中 array[0] 是 0-9 之间的标记,array[1] 是 10-19 之间的标记,等等。当您看到一个数字时,使用整数除法将其放入适当的数组桶中,例如数组[(int)标记/10]++。完成后,数组将包含每个桶中的标记数。

关于c - 计算一个值在数组中出现次数的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8263442/

相关文章:

c++ - 有没有编译前不提示保存的C/C++ IDE?

c - 为什么我们不能比较 int 变量和 c 中的 int 返回类型函数?

c++ - 将 QString 转换为 const char* 时不可预测的运行时行为

javascript - 更改一对 JavaScript 数组的值

c++ - 将迭代器的元素传递给函数 : wrong type of pointer

c - 什么是调度表?我如何在 C 中实现它?

c - 为什么 printf() 是一个不纯的函数?

C 计算器,有很多函数 in 函数 in 函数

c++ - 使用指针交换整数

c - 在将指针传递给函数时使用 &-操作数?