按元素

时间:2018-08-08 07:18:45

标签: c++ arduino

我无法确定具有8位数字数据的两个阵列中元素的差异。

我想编写代码,该代码应该返回第二个数组的哪个元素已更改以及第二个数组中相同元素的更新值是什么?

这是我完成的代码:

int c, i;
int b[8];
int d[8];
int x[8];

void setup() {
    // put your setup code here, to run once:
    for(i=0; i<8; i++){
        d[i] = bitRead(0,i);
    }
    Serial.begin(9600);
}

void loop() {
    // put your main code here, to run repeatedly:
    c = random(255);
    for (i=0; i<8; i++){
        b[i] = bitRead(c,i);
        // Serial.print(b[i]);
    }

    for (i=0; i<8; i++){
        x[i] = check(b[i],d[i]);
    }

    for (i=0; i<8; i++){  
        Serial.print(x[i]);
    }

    Serial.println();

    for(i=0; i<8; i++){
        d[i] = b[i];
        //Serial.print(d[i]);
    }
    Serial.println();

    delay(1000);
}

int check(int x[], int y[]){
    if(x!=y){
        return i;    
    } else {

    }
}

1 个答案:

答案 0 :(得分:0)

int check(int x[], int y[]){
    if(x!=y){
        return i;    
    } else {

    }
}

首先在此函数中没有i变量。您在入口中等待两个数组,但是当您调用此函数时,您仅传递整数。然后,该函数的所有路径都不会返回值。

您应该尝试的是使x表成为布尔表,然后删除您的check函数以执行以下操作:

for (i=0; i<8; i++){
    x[i] = (b[i]==d[i]);
}

您将获得一个表,其中索引i的值为true,而b[i]d[i]的值相同。