for(i=0;i<k;i++) for(j=0;j<k;j++) n[j]=n[i]+1; printf("%d\n",n[1]); 为什么结果是3

#include "stdio.h"
void main()
{
int n[3],i,j,k;
for(i=0;i<3;i++)
n[i]=0; k=2;
for(i=0;i<k;i++)
for(j=0;j<k;j++)
n[j]=n[i]+1;
printf("%d\n",n[1]);
}为什么结果是3,请高手帮我分析下

是一个双重循环。

其中for(j=0;j<3;j++)是for(i=0;i<3;i++)的内嵌循环。

先循环第一个fori=1j=1,2,3i=2j=1,2,3i=3j=1,2,3一共3*3执行9次。

for遍历0到9之间的数字,for循环由循环体及循环的终止条件两部分组成。

扩展资料:

for循环小括号里第一个“;”号前为一个为不参与循环的单次表达式,其可作为某一变量的初始化赋值语句, 用来给循环控制变量赋初值; 也可用来计算其它与for循环无关但先于循环部分处理的一个表达式。

“;”号之间的条件表达式是一个关系表达式,其为循环的正式开端,当条件表达式成立时执行中间循环体。

参考资料来源:百度百科-for循环

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-10
一步一步来
首先一开始 n[1]=0;

然后开始二重循环

i=0时 j=0 n[0] =n[0]+1 =1 j=1 n[1]=n[0]+1 =2
i=1时 j=0 n[0] = n[1]+1=3 j=1 n[1]=n[1]+1 = 2+1=3

所以 结果n【1】=3了本回答被提问者和网友采纳
第2个回答  2014-03-21
for(i = 0;i < k;i++)
for(j = 0;j < k;j++)
n[j] = n[i] + 1;
可以具体去分析,因为K值比较小,我们可以直接带入。
共有4种情况:
1、i = 0,j = 0:n[0] = n[0] +1 = 1;
2、i = 0,j = 1:n[1] = n[0] + 1 = 2;//第一种情况的时候已经将n[0]重新赋值了!此时n[0]为第一步得到的。
3、i = 1,j = 0:n[0] = n[1] + 1 = 3;
4、i = 1,j = 0:n[1] = n[1] + 1 = 3;//第三第四的n[1]则为第二步得到的,值为2.
最后一次循环将n[1] 重新赋值为2+1.所以最后结果为3!
第3个回答  2014-03-20
首先是初始化n[0] = n[1] = n[2] = 0;
然后进入二重循环,一步一步计算:

i=0时, n[0] = n[1] = n[2] = n[0]+1=1;
i=1时,n[0] = n[1] = n[2] = n[1]+1=2;
i=2时,n[0] = n[1] = n[2] = n[2]+1=3;
所以n[1]的值为3.
相似回答