在do / while中将char变量与单个char进行比较

时间:2016-12-16 01:33:11

标签: c do-while

我正在尝试制作一个基本上是两个玩家之间骰子的程序。从第一个玩家开始,他们轮流猜测掷骰子的结果是什么,并且如果他们猜对了就获得奖励积分。问题是,当运行时,程序忽略scanf以检查玩家是否想要玩另一轮,并退出do while循环。我以前遇到过这个问题并且没有找到令人满意的答案,问题可能是什么? (我是初学者,如果我犯了一个愚蠢的错误,请原谅我)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() 
{
    int n, p1, p2, turn;
    char answer;

    p1=0;
    p2=0;

    do
    {   
        //checking if player guesses correctly
        printf("Place bet\n");
        scanf("%d", &n);

        if (n-1==rand()%6 || turn==1)
        {
            printf("Player 1 wins!\n");
            p1++;
        }
        else if (n-1==rand()%6 || turn==2)
        {
            printf("Player 2 wins!\n");
            p2++;
        }
        else 
        {
            printf("Bad guess!\n");
        }

        //checking if players want to play another round
        printf("Play another round?\n");
        scanf("%c", &answer);

        //changing turns
        if (turn>1)
        {
            turn=1;
        }
        else 
        {
            turn++;
        }
    }while (answer=='y');

    printf("Final scores are:\nPlayer 1 got %d points.\nPlayer 2 got %d points\n", p1, p2); 
}

0 个答案:

没有答案