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”的位置本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报