比较C中的两个数组?

时间:2014-11-07 05:05:57

标签: c arrays algorithm

所以我有两个数组,一个[17]和一个[12]。我想比较每个的前12个数字,如果数字匹配,则打印出“0”,如果它们不匹配,则打印出“1”。但它不起作用。它应该打印“000001111111”但它没有。谁能告诉我为什么?

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>

int main(){

int i, j;

int a[17] = {1,0,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1};
int b[12] = {1,0,1,0,0,0,1,0,1,0,1,1}; 

for(i=0;i<12;i++)
for(j=0;j<12;j++)
   if(a[i] == b[j])
      printf("1");
   else
      printf("0");


system("pause");
return 0;
}

1 个答案:

答案 0 :(得分:6)

您的代码应为:

for(i=0;i<12;i++) {
   if(a[i] == b[i]) {
      printf("1");
   } else {
      printf("0");
   }
}

不需要两个循环。

您希望比较相同索引处的数组中的元素,因此两个数组的索引i应相同。