2条回答 默认 最新
- Autumn0923 2021-10-13 01:34关注
你写的判断条件有问题,看样子是你还没有理解题意题目说输入的数据都是绝对值不超过1000的整数,这个是前提不应该作为while的判断条件,
int main() { int c = 0; int a = 0; while(1) { if(c == 250) { printf("%d",a); break; } else a++; scanf("%d",&c); } return 0; }
在输入数据时,电脑会先将你输入的数据存到缓冲区内,然后scanf会从中一个个读取,所以只要while循环一直循环scanf就可以将缓冲区的数据读取完毕,所以要想跳出循环,就必须在循环里把结束条件写好,
而你这个一直输出4,就是因为你输入的数据都是满足绝对值小于1000的,所以循环条件一直满足,而循环内部没有循环结束条件,所以你就一直会看到4,由于这道题只需要知道第一个“250”出现的位置,对于后面的数据不是很关心,所以就可以简单地用一个循环,找到第一个“250”的位置本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥30 YOLO检测微调结果p为1
- ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
- ¥15 DS18B20内部ADC模数转换器
- ¥15 做个有关计算的小程序
- ¥15 MPI读取tif文件无法正常给各进程分配路径
- ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
- ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
- ¥15 setInterval 页面闪烁,怎么解决
- ¥15 如何让企业微信机器人实现消息汇总整合
- ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题