求助阿~~一道c语言的题

来源:百度知道 编辑:UC知道 时间:2024/05/26 05:02:45
2.设j为int型变量,则下面for循环语句的执行结果是
for(j=10;j>3;j--)
{if(j%3)j--;
--j;--j;
printf("%d",j);
}
老师给的答案是74 顺便问一下
if(j%3)j--;
--j;--j;
分行写和不分行写一样么? 4那个答案怎么来的呢?
我想的是:
第一次循环结束j=7,然后j--,j为6,6%3=0,跳出循环体,j--=5,5%3=2为真,j--,j为4,--j,j为3.--j,j为2。输出72,我说的哪错了么?郁闷阿

第一次循环没错,这时j=7,
第二次循环开始时j=6 (执行了j--)

if(j%3)j--;
--j;--j;
中,if(j%3)j--; 是一个语句,由于6%3=0.所以这句j--不执行

然后执行后面的--j;--j;
j=4;
然后打印4

然后j--,j等于3 ,j>3为假
退出
如果还不清楚加QQ331012005