我只有30天 发表于 2022-2-25 17:26:32

xxs刚学有点懵

#include<stdio.h>
   main()
{ int i=7;
do
{
switch(i%2)
{
case 1:i++;break;
case 0:i--;continue;
}
   i=i-2;
printf("i=%d\n",i);
}while(i>0);
}
为什么运行结果为i=0 i=2 i=4 i=6

大马强 发表于 2022-2-25 17:47:25

#include<stdio.h>
int main()
{        
        int i=7;
        do
        {
                switch(i%2)
                {
                        case 1:i++;break;
                        case 0:i--;continue;
                }       
           i=i-2;
                printf("i=%d\n",i);
        }while(i>0);
        return 0;
}
/*
第一次 i=7 -> 7%2= 1 -> 执行i++-> i=8 -> break跳出switch -> i=i-2=6-> printf(6)
第二次 i=6 -> 6%2= 0 ->执行i-- -> i=5 -> continue开启下次循环
第三次 i=5 -> 5%2= 1 -> 执行i++-> i=6 -> break跳出switch -> i=i-2=4-> printf(4)
第四次 i=4 -> 4%2= 0 ->执行i-- -> i=3 -> continue开启下次循环
第五次 i=3 -> 3%2= 1 -> 执行i++-> i=4 -> break跳出switch -> i=i-2=2-> printf(2)
第六次 i=2 -> 2%2= 0 ->执行i-- -> i=1 -> continue开启下次循环
第七次 i=1 -> 1%2= 1 ->执行i++ -> i=2 -> break跳出switch -> i=i-2=0-> printf(0)
i = 0 跳出while,程序结束
*/

我只有30天 发表于 2022-2-25 17:57:16

大马强 发表于 2022-2-25 17:47


谢谢哥,你太照顾新手

大马强 发表于 2022-2-25 18:04:43

我只有30天 发表于 2022-2-25 17:57
谢谢哥,你太照顾新手

真xxs?
小学都开始卷了吗{:10_266:}

我只有30天 发表于 2022-2-26 16:16:51

大马强 发表于 2022-2-25 18:04
真xxs?
小学都开始卷了吗

哥为什么我发不了帖子了

大马强 发表于 2022-2-26 17:13:33

我只有30天 发表于 2022-2-26 16:16
哥为什么我发不了帖子了

发不了可能是发帖子地方不对
有些教学的地方只能管理员发的

我只有30天 发表于 2022-2-26 17:15:22

大马强 发表于 2022-2-26 17:13
发不了可能是发帖子地方不对
有些教学的地方只能管理员发的

哥快去回答发出来了{:5_109:}

大马强 发表于 2022-2-26 17:30:14

你帖子又在审核了,我就在这里说吧
我先说一说
首先你在代码没按着标准来写
其次,我不知道你是不是故意的将这段代码位置颠倒
default:printf("\n");
case 2:printf("&");

稍加修改,这个结果又不一样了
#include<stdio.h>
int main() // 要按标准写
{
int i;
for(i=1;i<=5;i++)
    switch(i%5)
    {
           
              case 0:printf("*");break;
              case 1:printf("#");break;
              case 2:printf("&");
              default:printf("\n");
             
    }
return 0; // 要按标准写
}

我只有30天 发表于 2022-2-26 17:32:46

我等级不够加不了

本帖最后由 我只有30天 于 2022-2-26 17:46 编辑

大马强 发表于 2022-2-26 17:30
你帖子又在审核了,我就在这里说吧
我先说一说
首先你在代码没按着标准来写


太麻烦咱能加v聊吗

大马强 发表于 2022-2-26 17:35:42

i=1;i<=5;i++)
    switch(i%5)
    {
           
              case 0:printf("*");break;
              case 1:printf("#");break; //第一循环1 % 5 =1
              default:printf("\n");    // 说明还是优先case, 第三次3 % 5 = 3
              case 2:printf("&");    // 第二次循环 2 % 5 = 2 第三次3 % 5 = 3, 为啥会执行这个,我觉得就可能是默认执行default后就不拘于case的值了,因为标准写法default一般位于最后一句
    }
页: [1]
查看完整版本: xxs刚学有点懵