c语言:为什么我的while运行不了?

#include <stdio.h>
#include <math.h>
int main()
{
int a, i;
i = 0;
do
{
i++;
printf("输入一个数\n");
scanf_s("%d", &a);
if (a % 7 == 0)
{
printf("你输了,游戏结束!\n");
break;
}
else
printf("未踩雷,下一位\n");
printf("%d", i);
} while (i > 100);
while (a % 7 == 0||i >= 100);
printf("游戏结束,都是大佬!\n");
}

if和else可以,但是while(i>=100);这个运行不到,我理解不了

第1个回答  2022-10-20
第一个while(i>100)的循环条件应该是i<100,而不是i>100
这样i从0开始,才能在执行100次循环后自增为100,然后跳出循环
如果是while(i>100),第一次循环后i=1,不满足1>100,直接就跳出while了
还有第二个while(a%7==0||i>=100); 该语句没必要用while吧?如果满足while条件的话,程序就死循环在while中了,改成直接用if判断一下就好:
if (a%7==0 || i>=100)
printf("游戏结束,都是大佬!\n");追问

我懂了,我一直用错了while,我以为是符合while里面的条件就跳出程序,不符合就继续循环,然后一直一直陷在这个误区了。
然后第二个,哈哈哈,终于解惑了,我说我的游戏结束怎么一直刷屏,谢谢你!

追答

不客气~

本回答被提问者采纳
第2个回答  2022-10-19
你所谓的运行不到的现象是什么?追问

就是只循环了一次,我误以为while是不满足就继续循环,没想到是满足才继续循环,楼上帮我解决了疑惑。

相似回答