比较C中的两个数组?

标签 c arrays algorithm

所以我有两个数组,a[17] 和 b[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;
}

最佳答案

您的代码应该是:

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

不需要两个循环。

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

关于比较C中的两个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26794449/

相关文章:

char数组到C中的LPCTSTR转换

javascript - 不使用图表 [算法] 的卡方 p 值计算

algorithm - 我的数组等边算法出现意外结果

ios - Obj C 调用 Cocos2dx C++ 非静态函数

c - 根据 CPU 特性在 gcc 中选择合适的 ARM -mfpu 选项

c - 两者都是 char 但我得到,从 `char' 到 `char*' 的无效转换

java - Selenium:从数组中的字符串匹配xpath

c - 如何确定哪个条件为真?

c# - 为什么我的类数组元素表现得像一个指针? (C#)

c# - 努力制作算法来为益智游戏生成棋盘