gpt4 book ai didi

c++ - 计算两个数组中匹配元素的个数 C++

转载 作者:太空狗 更新时间:2023-10-29 20:44:13 29 4
gpt4 key购买 nike

我正在为 Comp Sci I 做家庭作业,我尝试了所有我在互联网上和教科书中能找到的东西,试图计算两个 C++ 数组中匹配元素的数量。我根本找不到一种方法让我的代码计算两个相同大小(相同值,相同位置)的数组中匹配元素的数量。例如,如果 array1 有 5、4、3、2、1,而 array2 有 1、2、3、4、5,则有一个匹配元素 3。如何让我的代码执行这个看似简单的任务?

无法在任何地方找到答案。我的教科书只展示了如何查看数组是否完全匹配,而没有计算匹配的数量,而且我还没有找到任何其他人对 C++ 有这个确切的问题。

到目前为止,这是我的功能:

int matchCounter(int lottery[5], int user[5], int matches, int SIZE)
{
int count = 0;

for (count < SIZE; count++;)
{
if (lottery[count] == user[count])
{
matches++;
}
}

return matches;
} // end matchCounter

顺便说一句,SIZE 是一个等于 5 的常数。看起来这应该可行,但每次我运行该程序时,它都会显示 0 个匹配项,即使有一些匹配项也是如此。如果有人能帮助我,我将永远欠你的债。说真的,一定有一些我只是没有看到的非常简单的东西。感谢您提前提供帮助。

最佳答案

您的 for 语句是乱码。试试这个:

int matchCounter(int lottery[5], int user[5], int matches, int SIZE)
{
for (int count = 0; count < SIZE; count++)
{
...

为什么你的程序总是失败:count++被放在了for循环中条件的位置,所以每次这个for 循环被执行,count 被评估并认为是条件,然后 count 增加 1。但是,每次 count 开始从 0 开始(如 int count = 0;),因此 for 循环实际上永远不会执行,并且 matches 保持为零。

编辑:

在您的源代码中,您没有使用返回值,@jimhark 也建议这样做。将函数签名更改为:

int matchCounter(int lottery[5], int user[5], int SIZE)

并调用:

matches = matchCounter(lottery, user, 5);

否则,您的函数matchCounter 的返回值将被忽略,而int matches 仅在函数中扮演局部变量的角色。

阅读此内容了解为什么匹配 不起作用:http://www.cs.utsa.edu/~wagner/CS2213/swap/swap.html (在类似的设置中)

关于c++ - 计算两个数组中匹配元素的个数 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13484545/

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