c++ - 如何判断数组100的个数不相等

标签 c++ c arrays

我正在编写一个数独程序。我发现判断数组中的数字是否互相重复是很困难的。

现在我有一个数组:int streamNum[SIZE]

  • 如果 SIZE=3,我可以像这样处理这个问题:if(streamNum[0]!=streamNum[1])...
  • 如果 SIZE=100,我认为我需要更好的解决方案,有什么标准做法吗?

最佳答案

有几种不同的方法可以做到这一点,我想最简单的是编写两个循环

bool has_duplicate = false;
for (int i = 0; i < SIZE && !has_duplicate; ++i)
    for (int j = i + 1; j < SIZE && !has_duplicate; ++j)
        if (streamNum[i] == streamNum[j])
            has_duplicate = true;
if (has_duplicate)
{
    ...
}
else
{
    ...
}

第一个循环遍历数组中的每个元素,第二个循环检查数组的其余元素中是否存在重复项(这就是它从 i + 1 开始的原因)。一旦找到重复项,两个循环都会退出(这就是 && !has_duplicate 的作用)。

这不是最有效的方法,更有效的方法是在查找重复项之前对数组进行排序,但这会同时修改数组的内容。

我希望我已经足够了解您的要求。

关于c++ - 如何判断数组100的个数不相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19206458/

相关文章:

C 将接口(interface)放在头文件中,同时隐藏实现它的函数

c - 调用 printf() 是如何在此处添加数字的?

python - 将文件加载到数组中,并用两个分隔符将其分隔两次

javascript - 将一个数组的内容与另一个数组进行匹配并返回过滤后的数组

c++ - 在 Qt 的单个小部件中添加复选框列表

c++ - QRegExp 用于从代码中提取单行注释

c++ - 在没有库的情况下用 C 解析 XML。

c - 使用两个参数重载宏

c - 具有预定义一维数组的二维数组的动态输入

c++ - 如何在 OpenGL(GLUT) 场景中创建静态背景图像?