-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] 有三个非零值。所以 br 增加了三次。为了平等,您应该使用 x[i]==y[i]。不像你那样单个'='。

于 2013-05-25T14:32:05.280 回答