给定100个数字的排序顺序,编写程序以查找添加到10的所有数字对

时间:2013-08-22 03:34:22

标签: c++

所以它写了一段代码。它在[-100,100]之间生成一个100个随机数的排序数组。然后通过将它们放入结果[]中找到所有加到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;
}

0 个答案:

没有答案