gpt4 book ai didi

c++ - 如何使用 C++ 计算 1-100 数组中的覆盖百分比?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:05:32 26 4
gpt4 key购买 nike

这是一项作业,所以如果没有直接的答案,我将不胜感激;相反,任何对我的算法的逻辑帮助(或指出任何逻辑缺陷)都将非常有帮助和感激!

我有一个程序,它从用户那里接收“n”个元素并将其放入一维数组中。该数组使用随机生成的数字。IE:如果用户输入 88,则会生成一个包含 88 个随机数(每个介于 1 到 100 之间)的列表)。“n”的最大值为 100。

我必须编写 2 个函数。

函数#1:

Determine the percentage of numbers that appear in the array of "n" elements.
So any duplicates would decrease the percentage.
And any missing numbers would decrease the percentage.
Thus if n = 75, then you have a maximum possible %age of 0.75
(this max %age decreases if there are duplicates)

This function basically calls upon function #2.

FUNCTION HEADER(GIVEN) = "double coverage (int array[], int n)"

函数#2:

Using a linear search, search for the key (key being the current # in the list of 1 to 100, which should be from the loop in function #1), in the array.

Return the position if that key is found in the array
(IE: if this is the loops 40th run, it will be at the variable "39",
and will go through every instance of an element in the array
and if any element is equal to 39, all of those positions will be returned?
I believe that is what our prof is asking)

Return -1 if the key is not found.

Given notes = "Only function #1 calls function #2,
and does so to find out if a certain value (key) is found among the first n elements of the array."

FUNCTION HEADER(GIVEN) = "int search (int array[], int n, int key)"

我真正需要帮助的是算法的逻辑。

我将不胜感激任何帮助,因为我会以完全不同于我们教授希望我们的方式来处理这个问题。

我的第一个想法是为 1 到 100 的所有变量键循环函数 #1。在那个循环中,转到搜索函数(函数#2),其中一个循环将遍历数组中的每个数字,如果数字是 (1) 重复的或 (2) 中不存在的,则将其添加到计数器中阵列。然后我将从 100 中减去该计数器。因此,如果除了 #40 和 #41 之外的所有数字都包含在数组中,然后 #77 是重复的,则覆盖率的总百分比将为 100 - 3 = 97%。

尽管在我打字时我认为这本身可能有缺陷? ^ 因为数组中最多有 100 个元素,如果唯一缺少的数字是 99,那么你会因为缺少那个数字而减去 1,然后如果有重复你会减去另一个 1,从而你的覆盖率将是 (100-2) = 98,而显然它应该是 99。

这 ^ 正是我非常感谢任何逻辑帮助的原因。 :)

我知道我在逻辑上处理这个问题时遇到了一些问题。

我想我可以相对轻松地弄清楚编码;我最纠结的是要采取的步骤。所以任何伪代码的想法都会很棒!

(如果任何人需要,我可以发布到目前为止的整个程序代码,尽管问问,但到目前为止我还有很多其他功能在程序中执行其他任务,所以它相当长)

最佳答案

我可能错了,但正如我所读,您需要做的就是:

  • 编写一个函数,循环遍历 n 个元素的数组以在其中找到给定的数字。它会返回第一次出现的索引,或者一个负值,以防在数组中找不到该数字。
  • 编写一个循环,为 1 到 100 的所有数字调用该函数,并对找到的数字进行计数。然后将结果除以 100。

关于c++ - 如何使用 C++ 计算 1-100 数组中的覆盖百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24606022/

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