所以它写了一段代码。它在[-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;
}