这段代码有什么问题。为什么给出错误的输出?

时间:2019-10-30 18:11:18

标签: c loops random

我试图使用随机函数制作一个简单的石头纸游戏,但是我无法理解为什么它的打印输出是两次... 问题是scanf函数出现的,因为它第一次运行正常,第二次拒绝接受谷歌,然后再次运行正常

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void main()
{
    int i,r,cp=0,pp=0;
    char c,p;
    srand(time(0));
    while(cp<5&&pp<5)
    {
        r=rand();
        do
        {
            r=r/10;
            if(r==0)
            {
                r=rand();
            }
        }
        while (r>10||r<2);
        printf("enter your choice");
        scanf("%c",&c);
        if(r<=3)
            p='r';
        else if(r<=6)
            p='p';
        else
            p='s';
        printf("\ncomputer choose  %c\n",p);
        if(p=='r'&&c=='p')
            cp++;
        if(p=='p'&&c=='s')
            cp++;
        if(p=='s'&&c=='r')
            cp++;
        if(c=='r'&&p=='p')
            pp++;
        if(c=='p'&&p=='s')
            pp++;
        if(c=='s'&&p=='r')
            pp++;
        printf("computer score = %d\nyour score = %d\n",pp,cp);

    }
}

0 个答案:

没有答案