鱼C论坛

 找回密码
 立即注册
查看: 1022|回复: 9

[已解决]xxs刚学有点懵

[复制链接]
发表于 2022-2-25 17:26:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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,程序结束 
*/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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,程序结束 
*/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-2-25 17:57:16 | 显示全部楼层

谢谢哥,你太照顾新手
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-25 18:04:43 | 显示全部楼层
我只有30天 发表于 2022-2-25 17:57
谢谢哥,你太照顾新手

真xxs?
小学都开始卷了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-26 16:16:51 | 显示全部楼层
大马强 发表于 2022-2-25 18:04
真xxs?
小学都开始卷了吗

哥为什么我发不了帖子了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-26 17:13:33 | 显示全部楼层
我只有30天 发表于 2022-2-26 16:16
哥为什么我发不了帖子了

发不了可能是发帖子地方不对
有些教学的地方只能管理员发的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-26 17:15:22 | 显示全部楼层
大马强 发表于 2022-2-26 17:13
发不了可能是发帖子地方不对
有些教学的地方只能管理员发的

哥快去回答发出来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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; // 要按标准写 
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-26 17:32:46 | 显示全部楼层

我等级不够加不了

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


太麻烦咱能加v聊吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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一般位于最后一句 
    }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 10:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表