0

于是就写了一段代码。它生成一个在 [-100,100] 之间的 100 个随机数的排序数组。然后它通过将它们放入 result[] 中找到所有加到 10 的数字对。

但是它没有按预期工作。随机数和排序似乎很好。它只是发现对部分。谁能告诉我我哪里做错了?任何帮助表示赞赏。

谢谢

#include <iostream>
#include <cstdlib> 
#include <algorithm>

 using namespace std;


int main()
{

int array[100];
int result[100];
int totalPair;

srand((unsigned)time(0)); 
   for(int i=0; i<100; i++){ 
       array[i] = (rand()%200)+1; 
       array[i]=array[i]-100;
         }

std::sort(array,array+100); 

int i=0;
int j=99;

int totalPairs=0;

while (i<j && i!=j)
{
      if (array[i]+array[j] == 10)
      {
         result[totalPairs*2] = array[i];
         result[totalPairs*2+1] = array[j];
         totalPairs++;
         ++i;
         --j;

      }
      else
      {
         if (array[i]+array[j] > 10) //make sum smaller reduce J
         {
            --j;
         }
         if (array[i]+array[j] < 10) //make sum larger increase I
         {
            ++i;
         }
         if (array[i]+array[j] == 0)
         {
            ++i;  
         }
      }


}

for(int a=0; a<100; ++a){ 
       cout<<array[a]<<endl;

}

for(int a=0; a<100; ++a){ 
       cout<<result[a]<<endl;
}

system("PAUSE");
return EXIT_SUCCESS;
}
4

0 回答 0