一个石头剪刀布游戏哪错了?

#include <stdio.h>
#include <math.h> 
main()
{
    int a,c=4;
    
    while(c=4)
    {
        printf("1:石头\n2:剪刀\n3:布\n4:继续\n5:结束\n");
        scanf("%d",a);
        switch(rand()%3)
        {
        case 1:if(a==3) printf("你赢了");else if(a==2)printf("平局");else printf("你输了");break;
        case 2:if(a==1) printf("你赢了");else if(a==2)printf("平局");else printf("你输了");break;
        case 3:if(a==2) printf("你赢了");else if(a==2)printf("平局");else printf("你输了");break;
        }
    scanf("%d",c);   
    }

}     

rand()%3,不包含3,所以你需要 +1

  • 开头要加入#include <stdlib.h>,rand()函数有在它里面声明
  • while(c=4)里=应该是==,不然会退不出去
  • scanf("%d",a);改成scanf("%d",&a);要把a的地址给scanf()
  • rand()%3还要+1,因为%3后值是0,1或者2。
  • scanf("%d",c);   也是要把c的地址给scantf(),scanf("%d",&c);

 

建议在循环前,用srand()给rand()函数一个种子,不然每次启动生成的都是一样的一组数。

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y

C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html