被新手村问题难住了
  • 板块学术版
  • 楼主anata
  • 当前回复9
  • 已保存回复9
  • 发布时间2022/10/13 09:33
  • 上次更新2023/10/27 07:43:15
查看原帖
被新手村问题难住了
209721
anata楼主2022/10/13 09:33

一个刚学编程的同学发来了一段代码:

#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

2022/10/13 09:33
加载中...