一个刚学编程的同学发来了一段代码:
#include<stdio.h>
int main()
{
int a = 0;
printf("来猜个数吧!\n");
int flag = 0;
while (flag < 3)//3次机会
{
scanf_s("%d", &a);
if (a == 114514)//对
{
printf("right");
break;
}
if (flag < 2)//错
{
printf("again\n");
flag++;
}
}
if(flag>=3)
{
printf("no more chance\n");//机会用尽
}
return 0;
}
代码无法运行。 但是稍作修改:
#include<stdio.h>
int main()
{
int a = 0;
printf("来猜个数吧!\n");
int flag = 0;
while (flag < 3)//3次机会
{
scanf_s("%d", &a);
if (a == 114514)//对
{
printf("right");
break;
}
if (flag < 2)//错
{
printf("again\n");
}
flag++;
}
if(flag>=3)
{
printf("no more chance\n");//机会用尽
}
return 0;
}
可以看到,仅仅只是把flag++移到了if外。 可是为什么会这样???求dalao