
main(){ int i, j, k=0;{}for(i=10,j=9;i<13;i++)
main(){inti,j,k=0;{}for(i=10,j=9;i<13;i++)while(j++<i)k+=j;printf("%d",k);}为啥是10不是33详...
main()
{ int i, j, k=0;{}
for(i=10,j=9;i<13;i++)
while (j++<i)
k+=j;
printf("%d",k);
}为啥是10不是33详细点过程 展开
{ int i, j, k=0;{}
for(i=10,j=9;i<13;i++)
while (j++<i)
k+=j;
printf("%d",k);
}为啥是10不是33详细点过程 展开
2个回答
展开全部
#include <stdio.h>
int main(int argc, char const *argv[])
{
int i, j, k=0;
for(i=10,j=9;i<13;i++)
while (j++<i)
k+=j;
printf("%d",k);
}
/*
初始化i为10,j为9.
执行j<i(9<10)为真 j++,j为10,k为10
执行j<i(10<10)为假 j++,j为11,k为10
执行i++,i为11,i<13为真
执行j<i(11<11)为假 j++,j为12,k为10
执行i++,i为12,i<13为真
执行j<i(12<12)为假 j++,j为13,k为10
执行i++,i为13,i<13为假
执行j<i(13<13)为假 j++,j为14,k为10
打印k,为10
*/
追问
是不是因为这个是for和 while 的循环嵌套,他首先要执行完while的循环才可以返回i++接着执行for循环
追答
对
展开全部
这程序先要注意2个点:
1.这是一个for循环嵌套whiIe的2重循环;
2.j++<i表示变量j先和i比较,然后j增1;
程序执行:
第1次for循环: i=10,j=9,i<13
_1.1 while(j++<i): 因j<i,j增1为10,k=k+j=10;
_1.2 while(j++<i): 因j=i,j增1为11,退出while;
第2次for循环: i=11,j=11,i<13
_2.1 while(j++<i): 因 j=i,j增1为12,退出while;
第3次for循环时i=12,j=12,i<13
_3.1 while(j++<i): 因 j=i,j增1为13,退出while;
第4次for循环时i=13,不再小于13,退出for。
打印k值,k=10
1.这是一个for循环嵌套whiIe的2重循环;
2.j++<i表示变量j先和i比较,然后j增1;
程序执行:
第1次for循环: i=10,j=9,i<13
_1.1 while(j++<i): 因j<i,j增1为10,k=k+j=10;
_1.2 while(j++<i): 因j=i,j增1为11,退出while;
第2次for循环: i=11,j=11,i<13
_2.1 while(j++<i): 因 j=i,j增1为12,退出while;
第3次for循环时i=12,j=12,i<13
_3.1 while(j++<i): 因 j=i,j增1为13,退出while;
第4次for循环时i=13,不再小于13,退出for。
打印k值,k=10
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询