2016-03-03 97 views
0

我有两个整数数组比较两个整数数组的元素在C++

#include<iostream> 
using namespace std; 
int comparetwoarrays(int array1[], int array2[], int ARRAY_SIZE1, int ARRAY_SIZE2) 

int main() 
{ 
    int const ARRAY_SIZE = 500; 
    int const ARRAY_SIZE = 10; 
    int array1[ARRAY_SIZE]; 
    int array2[ARRAY_SIZE2]; 
    comparetwoarrays(array1, array2, ARRAY_SIZE1, ARRAYSIZE2) 
} 

int comparetwoarrays(int array1[], int array2[], int ARRAY_SIZE1, int ARRAY_SIZE2) 
{ 
    int holdsAlike[10] = {0}; 
    for(int g = 0; g < ARRAY_SIZE2; g++) 
    { 
     for (int t = 0; t < ARRAY_SIZE2; t++) 
     { 
      if (array2[g] == array1[t]) 
      { 
       holdsAlike[g] = array2[g]; 
       cout<<holdsAlike[g]; 
      } 
      for(int w = 0; w < ARRAY_SIZE2; w++) 
      { 
       if(holdsAlike[w] != 0) 
       cout<<holdsAlike[w]; 
      } 
     } 
    } 

欲两个阵列的元素进行比较,并打印出值和所述元素的索引。不知道如何去做到这一点。任何洞察力将不胜感激。

+0

你有ARRAY_SIZE'的'两个定义。我想其中任何一个应该是'ARRAY_SIZE2'。 – MikeCAT

+0

是的,我试图比较较大阵列的前10个元素与较小阵列 – programmerintraining

+0

这看起来像作业。你的具体问题是什么? – barq

回答

0

代码你想要的。这可能是这样的:

#include <iostream> 

using std::cout; 

int comparetwoarrays(const int array1[], const int array2[], int array_size1, int array_size2); 

int main() 
{ 
    int const ARRAY_SIZE1 = 500; 
    int const ARRAY_SIZE2 = 10; 
    int array1[ARRAY_SIZE1] = {0}; 
    int array2[ARRAY_SIZE2] = {0}; 

    // set values to the arrays 

    comparetwoarrays(array1, array2, 10, ARRAY_SIZE2); 
} 

void comparetwoarrays(const int array1[], const int array2[], int array_size1, int array_size2) 
{ 
    for(int g = 0; g < array_size2; g++) 
    { 
     for (int t = 0; t < array_size1; t++) 
     { 
      if (array2[g] == array1[t]) 
      { 
       if (g == t) 
       { 
        cout << "got \"" << array2[g] << "\" at index " << g << "\n"; 
       } 
       else 
       { 
        cout << "got value = " << array2[g] << ", index on array2 = " << g <<", index on array1 = " << t << "\n"; 
       } 
      } 
     } 
    } 
} 

如果你只想打印元素既指标和价值相匹配:

void comparetwoarrays(const int array1[], const int array2[], int array_size1, int array_size2) 
{ 
    for(int g = 0; g < array_size1 && g < array_size2; g++) 
    { 
     if (array2[g] == array1[g]) 
     { 
      cout << "got \"" << array2[g] << "\" at index " << g << "\n"; 
     } 
    } 
} 
+0

我会试试看...... btw谢谢你的帮助 – programmerintraining

+0

对于每个array1元素,数组2将其索引更改为0 - 9,直到它的数组1达到499 ... .-。 – programmerintraining

+0

添加了比较前10个元素的代码。 – MikeCAT