该函数应检查是否存在重复的数字,但是它不起作用。

谁知道为什么?

#include <iostream>

using namespace std;


int main()
{
   int const size = 10;
   int arry[size] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 ,10};

   int i = 0;
   int k = 1;

   for (i = 0; i < size; i++)
   {
       for (k = 1; k < size; k++)
       {
           if (arry[i] == arry[k])
           {
               cout << arry[i] << " " << arry[k] << endl;
               cout << "duplicate" << endl;
               return 0;
           }
       }
   }
   cout << "no duplicate" << endl;
   return 0;
}

最佳答案

i == k时应跳过。

for (i = 0; i < size; i++)
{
   for (k = i+1; k < size; k++) // <-- either change HERE
   {
       if (i != k && arry[i] == arry[k])
       //  ^^^^^^ or HERE
       {
           cout << arry[i] << " " << arry[k] << endl;
           cout << "duplicate" << endl;
           return 0;
       }
   }
}

关于c++ - 检查数组中的重复数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25151094/

10-12 20:46