由于某些原因,此代码无法工作。我尝试使用stdbool.hlib执行while循环,但这不起作用。有人能告诉我我哪里错了吗?我只是想在c中做一个石头纸牌游戏,在这个游戏中,获胜的规则是正确的,当用户没有赢的时候,我宣布他输了。可能是有循环的东西
#include <stdio.h>
#include <string.h>
void win(){
printf("You win!\n");
}
int main(){
int i =1;
int var=1;
char machine_choice[3];
char ask='\0';
//things that can happen
machine_choice[0]="rock";
machine_choice[1]="paper";
machine_choice[2]="scissor";
srand((unsigned int)time(NULL));
int machine = rand() % 3; //machines actuall choice
char choice[50];
while (i=1) {
printf("what is ur choice. write it in lowercase pls.\n");
scanf("%s", choice);
printf("%s\n", choice);
printf("%s\n", machine_choice[machine]);
if (choice==(machine_choice[machine]))
{
printf("its a tie!\n");
var++;
}
if (choice=="paper" && machine==0)
{
win();
var++;
}
if (choice=="scissor" && machine==1)
{
win();
var++;
}
if (choice=="scissor" && machine==1)
{
win();
var++;
}
if (var==1)
{
printf("do u want to play again(y/n)\n");
scanf(" %c", &ask);
if (ask=='n')
{
printf("okayy!");
break;
}
else
{
var=1;
}
}
}
return 0;
}```发布于 2022-03-30 08:02:56
问题是,在while (i=1)中,I始终等于1,所以它永远不会退出该循环,即使您输入了带有i = 1的赋值,而不是条件。如果要输入条件,则必须输入while(i==1)。
https://stackoverflow.com/questions/71672801
复制相似问题