所以我有两个数组,一个[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;
}
答案 0 :(得分:6)
您的代码应为:
for(i=0;i<12;i++) {
if(a[i] == b[i]) {
printf("1");
} else {
printf("0");
}
}
不需要两个循环。
您希望比较相同索引处的数组中的元素,因此两个数组的索引i
应相同。