-3

なぜこのコードの結果なのかわかりません3

#include <stdio.h>

main()
{
    int x[] = {1, 3, 2, 4, 0};
    int y[] = {0, 2, 1, 5, 0};
    int i, br = 0;

    for (i = 0; i < 5; i++)
        if (x[i] = y[i])
            br++;

    printf("%d\n", br);    
}
4

2 に答える 2

6
if (x[i] = y[i])

比較演算子は==次のとおりです。

if (x[i] == y[i])

最初の例では、代入はy[i]0 ではない値を返したため、if ステートメントは成功しました。

于 2013-05-25T14:28:07.037 に答える
2

y[i] を x[i] に割り当てるので正しい

y[i] には 3 つのゼロ以外の値があります。そのため、br は 3 倍になりました。等しい場合は、x[i]==y[i] を使用する必要があります。あなたがしたように単一の「=」ではありません。

于 2013-05-25T14:32:05.280 に答える