我接到一项任务,要编写一个程序,该程序从文本文件中将多个赋值标记读入数组,然后计算特定括号内有多少标记,即 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/