本人用C语言写了一个猜拳游戏,运行结果如图:求大神解释如何修改才能使使用第二个主函数时结果正常?
最佳回答
最新回答共有2条回答
-
2026-04-03 10:01:14伶俐的大象
回复楼主请看我的修改运行结果:#include<stdio。h>#include<time。h>int User_Choice(){\x09int u;\x09do\x09{\x09\x09printf("请出拳(1-石头,2-剪刀,3-布):");\x09\x09scanf("%d",&u);\x09\x09switch(u)\x09\x09{\x09\x09\x09case 1:printf("你出的是石头!\n");break;\x09\x09\x09case 2:printf("你出的是剪刀!\n");break;\x09\x09\x09case 3:printf("你出的是布!\n");break;\x09\x09\x09default:printf("你的输入有误,请重新输入!\n");continue;\x09\x09}\x09}while(u<1||u>3);\x09return u;}int Computer_Choice(){\x09int c;\x09srand(time(0));\x09c=rand()%3+1;\x09switch(c)\x09{\x09\x09case 1:printf("电脑出的是石头!\n");break;\x09\x09case 2:printf("电脑出的是剪刀!\n");break;\x09\x09case 3:printf("电脑出的是布!\n");break;\x09}\x09return c;}void Compare(int c, int u){\x09if((u==1 && c==2)||(u==2 && c==3)||(u==3 && c==1))\x09printf("你赢了!\n");\x09if((c==1 && u==2)||(c==2 && u==3)||(c==3 && u==1))\x09printf("电脑赢了!\n");\x09if(u==c)\x09printf("你和电脑打平了!\n");}void main(){\x09int c,u;\x09char ans; \x09do\x09{\x09 u=User_Choice();\x09 c=Computer_Choice();\x09 Compare(c,u);\x09 printf("还要继续玩吗?(y/n):");\x09 scanf("%c",&ans); //用来接受回车符\x09 scanf("%c",&ans);\x09// while(ans=='\n') scanf("%c",&ans); //这里主要用来接受回车键\x09 if((ans=='n')||(ans=='N')) break;\x09}while((ans=='y')||(ans=='Y'));\x09printf("谢谢使用!欢迎下次再玩!\n");} scanf("%c",&b); 【例2】: scanf("%d",&x); scanf("%d",&y); 【例3】: scanf("%d",&x); scanf("%c",&a); 【例4】: scanf("%d",&x); scanf("%d",&y); scanf("%c",&a); 【结论】: 当输入完整数或字符时,后面还需要输入字符时,为了避免输入的字符变成回车符,可以在输入字符前多加一条scanf语句来吃掉前面的回车符。此时用来吃掉回车符的scanf输入可以用%c方式,也可以用%d方式。当用%c方式来吃掉回车符时,回车符被读进了char类型变量中,当用%d方式来吃掉回车符时,回车符并没有被送进int类型变量中,而是在异常的字符输入后,被自动清除了。 */
热门文章
- 康达学院专转本五年制
- 高考一个考场分ab卷吗
- not only but also用法
- 某物体做自由落体运动,从释放开始计时,则物体在前2s内的平均速度为______m/s,物体下落2m时的速度大小为______m/s.
- 三角函数公式大全表格
- 地理中考必背知识点2022
- 2013-2014学年小学六年级科学上学期期末考试试卷及答案
- 人教版2014-2015学年小学五年级英语第二学期期中教学质量检测试卷及答案
- 【Linux驱动开发】设备树详解(二)设备树语法详解
- 别跟客户扯细节
- 在别的城市买房子能落户吗
- 卖房前要把装修贷还完吗
- 高中政治教学提高教学效果的方法探究
- “互联网+”背景下的初中英语课堂教学改革与创新策略研究
- 2022年终止合同范本
- 租房合同范本范文
- 如何挑选土豆
- 如何挑选土鸡
