首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C中的while循环有问题

问C中的while循环有问题
EN

Stack Overflow用户
提问于 2022-03-30 06:58:37
回答 1查看 65关注 0票数 -3

由于某些原因,此代码无法工作。我尝试使用stdbool.hlib执行while循环,但这不起作用。有人能告诉我我哪里错了吗?我只是想在c中做一个石头纸牌游戏,在这个游戏中,获胜的规则是正确的,当用户没有赢的时候,我宣布他输了。可能是有循环的东西

代码语言:javascript
复制
#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;
}```
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-30 08:02:56

问题是,在while (i=1)中,I始终等于1,所以它永远不会退出该循环,即使您输入了带有i = 1的赋值,而不是条件。如果要输入条件,则必须输入while(i==1)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71672801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档