注册 登录
编程论坛 C++教室

请指教,谢谢

张影 发布于 2014-12-20 15:06, 321 次点击
main( )

   {        int j=0,k=0,a=0;

  while(j<2)

   {  j++;

      a++;

      k=0;

   }

  while(k<=3)

   {  k++;

      if(k%2!=0)

          continue;

      a++;

   }

  a++;

  printf("%d\n",a);

   }

请问这个程序怎么读啊,谢谢了
3 回复
#2
yangfrancis2014-12-20 22:26
main( )

   {        int j=0,k=0,a=0;//初始化三个变量为0

  while(j<2)//当j<2时执行如下代码,根据初始值,将执行两次循环:j=0和j=1时执行,循环结束后j,a变成2

   {  j++;

      a++;

      k=0;

   }

  while(k<=3)//k初始值为0,在k为0,1,2,3时将执行如下代码,共循环四次

   {  k++;        //进入循环体内k递增1,且用递增后的值对2取余,即用1,2,3,4对2取余。

      if(k%2!=0)  //如果余数为0,即能整除,跳过a++这一行继续下一轮循环,只在不能整除时对a 作递增

          continue;

      a++;

   }

  a++;  //最后再次对a作累加

  printf("%d\n",a);  
   }
//输出a,由于a初始值为0,在1~4的四个数中每遇到一个不能被2整除的数递增一次,且在这之前有两次不相干的递增

//在这之后有一次不相干的递增,最终a的输出结果为:比1~4当中不被2整除的数的个数大3的数。1~4当中有1,3不被整除,合计为2个,则a最终输出结果是5。 (2+2+1)
#3
tlliqi2014-12-20 22:32
很详细
#4
张影2014-12-21 14:42
回复 2楼 yangfrancis
很清楚,非常感谢!!
1