问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言猜拳程序 scanf不执行……

发布网友 发布时间:2022-04-25 00:09

我来回答

3个回答

热心网友 时间:2023-07-26 22:09

//当你输入y或者n的时候,按下了回车。而程序只把第一个字符y或者n读入给a,回车\n还在缓冲区中,也算一个字符。所以第二次scanf的时候,由于缓冲区内有个回车,它直接读取出来了。而不是让你输入。然后跳出while循环直接结束了。关于这方面的内容可以在网上搜点资料看看
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main()
{
int userchoice,computerchoice,result,b;
char a;
a='y';
do
{
printf("Please input your choice:\n0 paper\n1 scissors\n2 rock\n");
scanf("%d",&userchoice);
switch(userchoice){
case 0:
printf("You pick paper\n");
break;
case 1:
printf("You pick scissors\n");
break;
case 2:
printf("You pick rock\n");
break;
default:
printf("Error!\n");
}
srand(time(0));
computerchoice = rand()%3;
switch(computerchoice){
case 0:
printf("Computer pick paper\n");
break;
case 1:
printf("Computer pick scissors\n");
break;
case 2:
printf("Computer pick rock\n");
break;
}
result = userchoice - computerchoice;
switch(result){
case -2:
printf("You Wins!\n");
break;
case -1:
printf("Computer Wins!\n");
break;
case 0:
printf("Tie!\n");
break;
case 1:
printf("You Wins!\n");
break;
case 2:
printf("Computer Wins!\n");
break;
default:
printf("Error!\n");}
printf("Do you want to paly again?(y/n)\n");
fflush(stdin); //清除缓冲区内的内容
scanf("%c",&a);
} while(a=='y');
}

热心网友 时间:2023-07-26 22:10

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

int main(){
int userchoice,computerchoice,result;
clrscr();/*清屏*/
do
{
printf("Please input your choice:\n0 paper\n1 scissors\n2 rock\n");
scanf("%d",&userchoice);
switch(userchoice){
case 0:
printf("You pick paper\n");
break;
case 1:
printf("You pick scissors\n");
break;
case 2:
printf("You pick rock\n");
break;
default:
printf("Error!\n");
}
srand(time(0));
computerchoice = rand()%3;
switch(computerchoice){
case 0:
printf("Computer pick paper\n");
break;
case 1:
printf("Computer pick scissors\n");
break;
case 2:
printf("Computer pick rock\n");
break;
}
result = userchoice - computerchoice;
switch(result){
case -2:
printf("You Wins!\n");
break;
case -1:
printf("Computer Wins!\n");
break;
case 0:
printf("Tie!\n");
break;
case 1:
printf("You Wins!\n");
break;
case 2:
printf("Computer Wins!\n");
break;
default:
printf("Error!\n");
}
printf("Do you want to paly again?(y/n)");
getchar();/*读出\N*/
}
while(getchar()=='y');
}

热心网友 时间:2023-07-26 22:10

while(a='y');
改为
while(a=='y');
你开始的语句是赋值语句呵
C语言的scanf怎么没执行?

这是因为在上一次使用scanf后没有清空输入缓存, 这样你再次使用scanf的时候函数就可能会认为你已经输入过了。解决这一问题的最简单办法是在接收字符的scanf的控制符"%c"中的%前加一个空格写成" %c",把前一次输入遗留在输入缓冲区里的所有广义空格(' '、'\t'、'\n'等)都吸收掉。

C语言中循环体中的scanf不被执行

在scanf("%d",&amp;year);这一句这里,%d表示取得整数,如果year不是整数就会自动把小数部分截掉,只留整数部分赋值给year。不管用户输入的是整数还是小数,year都会得到整数部分,判断条件这一句!(year==(int)year),其值当然就是false,即不成立,只会执行一次。例如,当用户输入2012.89时,year的值就...

C语言调用一个程序后无法执行输入操作(意思是有段代码直接跳过了...

在int num;下面加一句 fflush(stdin);//清空缓冲区 因为你前面用了scanf还剩了一个回车,被int num;下面那个scanf捕获到了,所就就跳过scanf 进而也就跳过了switch,如果你在switch里加一句 default:printf("scanf");break;看看会不会打印出 ...

C语言循环里scanf用不了

肯定是因为game()函数里有scanf语句,并且scanf之后没有处理scanf留下的换行符。scanf从屏幕是读取数据时,往往不会自动读掉行尾的换行符(你输入数据后,肯定会按一个回车的对吧),所以在game函数里的最后一个scanf结束后,输入缓冲区里还一个换行符在里面,这个时候main函数里的scanf函数读到的字符就...

C语言输入一个scanf后 后面程序不执行?

scanf的意思,就是让你输入一个数值并回车 程序不执行,是等待你的输入。每个scanf都是在等待键盘输入。

C语言程序查错:为什么scanf("%c",&amp;y);语句不执行?执行结果如下:

首先代码少了读取加油种类变量的语句,但是加的时候应该注意上边输入的回车也是一个字符,所以单单加一个scanf("%c",&amp;y);也是无法解决问题的,所以建议在之前加一个getchar();当然一般我们对这样格式输入的问题都对变量的类型作数字量处理,而不是这样顺次输入%c控制的字符读入。希望对你有所帮助!

C语言。为什么在调用函数中用了scanf.之后主函数的scanf和printf语句就...

虽说意义不明,所以,你在操作过程中有按回车键,这个操作会进入输入流,被后面那个scanf("%c",&amp;ch);读取了,ch读取了回车,因此表现为Press any key to continue之前会有一次回车,实际上执行过。

在C语言中,为什么我的一个 scanf代码在第二次循环操作时,那步骤不执...

因为scanf输入要按回车,输入一个字符后回车,计算机实际上接收了两个字符,即:字符+回车。试一下flushall(); or fflush(stdin);

求C语言猜拳游戏代码

scanf("%d",&amp;start);if((start!=1)&amp;&amp;(start!=2)){ printf("请输入1或2\n");} else yes=0;} start:if(start==1) /*如果用户选择开始游戏……*/ { printf("你出?\n1:石头\n2:剪刀\n3:布\n");while(inp_1) /*预防用户输入别的数据*/ { scanf("%d",&amp;inp);if((inp!

C语言中用scanf("%c",&amp;ch);程序会出错,如果scanf(" %c",&amp;ch);在%c...

控制串中的空白符使 scanf() 在输入流中跳过一个或多个空白行。空白符可以是空格(space)、制表符(tab)和新行符(newline)。 本质上,控制串中的空白符使 scanf() 在输入流中读,但不保存结果,直到发现非空白字符为止。这是百度里关于fflush(stdin)的说明:http://baike.baidu.com/link?url=...

c语言猜拳游戏程序设计 c语言scanf和printf scanf是不是c语言关键字 c语言scanf_s c语言gets和scanf 大一c语言猜拳游戏流程图 c语言两个scanf 在c语言中scanf什么意思 c语言scanf数组
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苏州一级建造师能买吗? 我是苏州2013一级建造师考生,9月15日最后一门考试把身份证忘在课桌上... 二级建造师 报名 现场确认些什么 会不会问你工作内容什么的,试探你是否... 根据我国《刑法》的规定,下列属于公共财产的是()。 苏州一级建造师报名时间是不是已经过了,要是没有赶上,今年还能有什么其 ... 盗取国家公共财产罪 我是苏州2013一级建造师考生,9月15日最后一场把身份证忘在考场了,我... 二级建造师网上报名已经通过'请问现场初审能找人代替吗我在苏州报名的... 什么是刑法中规定的公共财产,公民私人所有的财产 犯罪构成要件公私财物是什么? C 语言 猜拳 五局三胜 关于一个c语言实现猜拳小游戏的程序 输出有点点问题 求大神解救! C语言 怎么用C语言设计一个猜拳游戏 剪刀石头布用1.2.3代替 要玩5局3胜, C语言猜拳游戏的系统分析? 用C语言函数做猜拳问题,出现个错误不知道改``高手指点 C语言编写三局两胜的猜拳游戏编程 C语言猜拳游戏代码 帮忙 改改 能运行就行 五局三胜制是关键 求帮忙写一个C语言的猜拳小游戏 用c语言怎么写猜拳游戏啊!我刚刚学一个月 c语言问题 猜拳游戏 c语言猜拳游戏问题,求大神帮忙看一下 猜拳游戏c代码 c语言 猜拳问题 怎样用C语言编写一个猜拳游戏? 求C语言猜拳游戏代码 c语言做猜拳 三天辟谷结束了怎么吃? 师傅告诉我一下,我辟谷三天了,怎么什么反应都没有 坚持每月辟谷三天 辟谷三天可以吗 怎么更改王者荣耀位置? 诺怎么组词,怎么读,璧的读音,璧的拼音是什么 董光璧是什么人 西安吉瑞璧环保科技有限公司怎么样? 静影沉璧里面的月亮一样大小 麻烦发一下白眉煮酒的《静影沉璧》,北极的狼崽的《一只白虎受》 格式:txt 邮箱:HSasha@126.com 谢谢。 怎么安装微信到电脑上 怎么在电脑安装微信? 电脑上微信怎么安装 电脑有没有wifi万能钥匙 有没有wifi万能钥匙pc版的 万能钥匙有电脑版的吗? 网络是由谁发眀的? 网络是谁发明的啊 谁发明了网络? 网络是谁发明的?拜托各位大神 网络是谁发明?? 4k视频在哪下载? 哪里可以下载4k视频啊? 去哪下载4K片源