【发布时间】:2013-09-27 22:20:48
【问题描述】:
为什么我不能比较随机函数的结果?
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main (){
srand(time(NULL));
/*Player 1*/
int P1d1, P1d2, P1total;
P1d1 = 1 + rand() % 6; //Rolls Player 1's first die; random # between 1-6
P1d2 = 1 + rand() % 6; //Rolls Player 1's second die; random # between 1-6
P1total = P1d1 + P1d2; //Takes total of both rolls
/*Player 2*/
int P2d1, P2d2, P2total;
P2d1 = 1 + rand() % 6; //Rolls Player 2's first die; random # between 1-6
P2d2 = 1 + rand() % 6; //Rolls Player 2's second die; random # between 1-6
P2total = P2d1 + P2d2; //Takes total of both rolls
if (P1d1 == P1d2 && P2d1 =! P2d2){ <--- ERROR HERE
printf("Player 1 wins!\n");
}
else if (P2d1 == P2d2 && P1d1 =! P1d2) {
printf("Player 2 wins!\n");
}
}
我收到错误消息error: lvalue required as left operand of assignment。
我理解这意味着赋值的左侧必须是一个变量,但左侧是一个变量(int P1d1)。有什么建议吗?
【问题讨论】:
-
因为应该是
==,而不是=。 -
它仍然给出与 == 相同的错误消息
-
这是 != 不是 =!这足够长了
-
我会投票关闭,因为这与 Rand() 无关,并且将来不太可能帮助任何人。但我不知道正确的关闭原因。
-
@JonathonReinhart:这不应该被关闭,因为提问者显然已经在那里完成了自己的研究并陷入困境。我会投票修改问题名称,使其与“比较值的问题:需要左值作为赋值的左操作数”问题有关