#include<stdio.h>
int main()
{
int guess = 1;
char response;
printf("is your num %d?\n",guess);
while ((response = getchar())!= 'y')
{
if (response == 'n')
printf("well,is your num is %d?\n",++guess);
else
printf("only y or n.\n");
while (getchar() == '\n')
continue;
}
printf("I know I could do it\n");
return 0;
}
这段小程序continue跳过的步骤
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- CSDN专家-深度学习进阶 2021-08-16 11:50关注
你这个continue其实不用加,直接这样就好了。因为你之前在第一次输入后,第一个回车被读入,continue跳过了此次循环进入内部while的下一次循环,当前等于回车符会继续进行一次getchar读入,把你下一次的y或者n读入了,此时跳出内部while循环,然后再大的while循环回车会被作为response读入,每次都是判断是否等于‘n’,所以一直输出only y or n.\n,去掉内部的while循环或者只用一个getchar()问题就解决了。
如果有帮助请点一下我回答右上方的采纳,谢谢!以后有什么问题可以互相交流。#include<stdio.h> int main() { int guess = 1; char response; printf("is your num %d?\n",guess); while ((response = getchar())!= 'y') { if (response == 'n') printf("well,is your num is %d?\n",++guess); else printf("only y or n.\n"); } printf("I know I could do it\n"); return 0; }
或者只用一次getchar()吃回车#include<stdio.h> int main() { int guess = 1; char response; while ((response = getchar())!= 'y') { printf("%c\n",response); if (response == 'n') printf("well,is your num is %d?\n",++guess); else printf("only y or n.\n"); getchar(); } printf("I know I could do it\n"); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 Windows Script Host 无法找到脚本文件"C:\ProgramData\Player800\Cotrl.vbs”
- ¥15 matlab自定义损失函数
- ¥15 35114 SVAC视频验签的问题
- ¥15 impedancepy
- ¥15 求往届大挑得奖作品(ppt…)
- ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
- ¥50 浦育平台scratch图形化编程
- ¥20 求这个的原理图 只要原理图
- ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
- ¥20 微信的店铺小程序如何修改背景图