鱼C论坛

 找回密码
 立即注册
查看: 992|回复: 2

[已解决]希望有详细的解答过程

[复制链接]
发表于 2021-4-18 01:40:03 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x

以下程序的输出结果是n=4

#include<stdio.h>

void main()

{

int i,n=0;

  for(i=2;i<5;i++)

  {

do {

  if(i%3) continue;

         n++;

      } while(!i);

      n++;

   } printf("n=%d",n);

}



A对
B错这道题怎么做,希望有详细的解答过程,被这道题搞蒙了
最佳答案
2021-4-18 09:42:08
#include<stdio.h>

void main()

{

int i,n=0;

  for(i=2;i<5;i++)     //这里限定 i 取值为 2 3 4

  {

do {

  if(i%3) continue;   //这里  在上面 i 的取值范围内  只有3不执行continue

         n++;

      } while(!i);      //这里  i 非0则不进行下次循环,在上面的 i 取值范围内, 这个do while循环只可能循环一次

      n++;

   } printf("n=%d",n);   //只有3种 i 的取值  就好好算一下每个取值 n 加了多少次

}

i = 2 时:
             n += 1  --> 因为do while循环内continue了,do while又只执行一次,所以只有for循环内的 n++ 执行了
i = 3 时:
             n += 2  --> 上面分析了,i = 3 时,没有执行continue,所以do while 内 n 加了一次,for循环内 n 加了一次
i = 4 时:
             n += 1  --> i = 4 的情况和 i = 2完全相同
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-18 08:21:11 From FishC Mobile | 显示全部楼层
这有啥可解答的,我都怀疑这代码跑不动
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-18 09:42:08 | 显示全部楼层    本楼为最佳答案   
#include<stdio.h>

void main()

{

int i,n=0;

  for(i=2;i<5;i++)     //这里限定 i 取值为 2 3 4

  {

do {

  if(i%3) continue;   //这里  在上面 i 的取值范围内  只有3不执行continue

         n++;

      } while(!i);      //这里  i 非0则不进行下次循环,在上面的 i 取值范围内, 这个do while循环只可能循环一次

      n++;

   } printf("n=%d",n);   //只有3种 i 的取值  就好好算一下每个取值 n 加了多少次

}

i = 2 时:
             n += 1  --> 因为do while循环内continue了,do while又只执行一次,所以只有for循环内的 n++ 执行了
i = 3 时:
             n += 2  --> 上面分析了,i = 3 时,没有执行continue,所以do while 内 n 加了一次,for循环内 n 加了一次
i = 4 时:
             n += 1  --> i = 4 的情况和 i = 2完全相同
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 15:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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