2015-10-09 838 views
-4

我试图比较两个不同数组之间的所有值之间的相等性,除了在另一个数组中相同位置的数值之外: 例如array1 [0] == array2 [1 ]但不是array1 [0] == array2 [0] 我有一点麻烦,知道必须有一个比我所做的更容易的方式是这样的: 这是在c的顺便比较两个不同阵列中的值是否相等

for(int r=1; r<4;4++){ 
    if(choicearray[r]==comparray[r+1]||choicearray[r]==comparray[r-1] || choicearray[r]==comparray[r+2]|| choicearray[r]==comparray[r-2] || choicearray[r]==comparray[r-3] || choicearray[r]==comparray[r+3]){ 
    printf("w "); 
     e++; 
    } 
    } 

两个阵列包含4个字符

+5

您的代码将无法正常工作:'4 ++'? –

+1

你能提供2个例子:其中2个数组是相同的,而2个数组根据所描述的逻辑而不同? –

+2

请发布可编辑代码。 –

回答

3

首先,请记住,阵列被索引开始从0(在CAS e 0至3)。

您必须遍历第一个数组,然后遍历第二个数组。

int n=4; 
for(int r=0; r<n; r++){ 
    for(int q=0; q<n; q++){ 
     if(arrayA[r]==arrayB[q] && q!=r) 
      printf("w "); 
    } 
} 

条件q!=r检查只比较了不同的索引。

0

对于初学者来说,你可以尝试使用两个回路,每控制一个数组的迭代,像这样:

for (int r=0; r<4;r++){ 
    for (int s=0; s<4;s++){ 
     if (s!=r){ 
      //do your comparing 
     } 
    } 
} 
相关问题