C++问题: (1). 第一次运行for循环的时候,a=11,m=11,满足m<=b,然后执行 f
C++问题:(1).第一次运行for循环的时候,a=11,m=11,满足m<=b,然后执行fun(11),结果为true,继续执行函数体内的if语句,这里的l++%10=...
C++问题:
(1). 第一次运行for循环的时候,a=11,m=11,满足m<=b,然后执行 fun(11),结果为true,继续执行函数体内的if语句,这里的 l++%10==0判断,是0%10==0还是1%10==0呢,运行后,l=1,
如果是0%10==0,下面输出m的值就成立了
(2). 第二次执行,此时m=13,i=3,执行fun(13),返回true,再继续if判断,l++%10==0,就变成了1%10==0或2%10==0的判断,显然是不成立,也就是m=13是不会被输出的,
但是运行结果却有输出
求详解,后追加30分,共50作为答谢。 展开
(1). 第一次运行for循环的时候,a=11,m=11,满足m<=b,然后执行 fun(11),结果为true,继续执行函数体内的if语句,这里的 l++%10==0判断,是0%10==0还是1%10==0呢,运行后,l=1,
如果是0%10==0,下面输出m的值就成立了
(2). 第二次执行,此时m=13,i=3,执行fun(13),返回true,再继续if判断,l++%10==0,就变成了1%10==0或2%10==0的判断,显然是不成立,也就是m=13是不会被输出的,
但是运行结果却有输出
求详解,后追加30分,共50作为答谢。 展开
2014-10-12
展开全部
(1)++是增量运算符,前置或后置增量运算符,在把变量的值加1方面作用相同。但++是运算符,表达式++x和x++也有值,++x求出的值是x加1之后的那个值,x++求出的是x加1之前的原值。因此这里l++ % 10是l的原值即 0% 10 =0。
(2)if语句的执行方式为【 if (条件) 语句】,条件成立执行if后的一条语句,当要执行的语句部分为符合语句时要给符合语句加花括号。这里的:
if(l++%10 == 0)
cout<<endl;
cout<<setw(5)<<m;
中if条件成立与否只影响cout<<endl;不影响cout<<setw(5)<<m;,如果想要if控制cout<<setw(5)<<m;要改成:
if(l++%10 == 0)
{
cout<<endl;
cout<<setw(5)<<m;
}。
所以第一次执行时,程序输出换行符(空行),之后只有数据(不再输出换行符)。
这两种写法的区别如下:
1)原题写法
按原题写法时的输出:
2)修改后:
修改后的执行结果:
追问
谢谢,很详细,明白了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询