在c语言中以下程序段运行后的输出结果是
intn[3],t,j,k;for(t=0;t<3;t++){n[t]=0;}k=2;for(t=0;t<k;t++){for(j=0;j<3;j++){n[j]=n[t...
int n[3], t, j, k;
for (t=0; t<3; t++)
{
n[t] = 0;
}
k = 2;
for (t=0; t<k; t++)
{
for (j=0; j<3; j++)
{
n[j] = n[t] + 1;
}
}
printf("%d\n", n[1]); 展开
for (t=0; t<3; t++)
{
n[t] = 0;
}
k = 2;
for (t=0; t<k; t++)
{
for (j=0; j<3; j++)
{
n[j] = n[t] + 1;
}
}
printf("%d\n", n[1]); 展开
3个回答
展开全部
输出结果是3.
int n[3], t, j, k;
for (t=0; t<3; t++)
{
n[t] = 0; //这个相当于数组的初始化,全部初始化为0
}
k = 2;
for (t=0; t<k; t++) //执行for循环,当t=0时,j=0时,n[0] = n[0] + 1;得到n[j]=1,这里的n[t]的
{ 值也将从0变为1,因为n[t]跟n[j]此时t=j=0;所以表示的都是数组n的同
for (j=0; j<3; j++) 一元素,接着执行下一步t=0,j=1,n[1]=n[0]+1; n[1]= 2; 当t=0,j=2时,
{ n[2]=n[0]+1; n[2] = 1;接着跳出内层for循环,执行外层for循环,t=1时,
n[j] = n[t] + 1; j = 0,n[j] = n[t] + 1即相当于n[0] = n[1] + 1;前面算出n[1] = 2,所以这里
} n[0] = 3;
}
printf("%d\n", n[1]);
int n[3], t, j, k;
for (t=0; t<3; t++)
{
n[t] = 0; //这个相当于数组的初始化,全部初始化为0
}
k = 2;
for (t=0; t<k; t++) //执行for循环,当t=0时,j=0时,n[0] = n[0] + 1;得到n[j]=1,这里的n[t]的
{ 值也将从0变为1,因为n[t]跟n[j]此时t=j=0;所以表示的都是数组n的同
for (j=0; j<3; j++) 一元素,接着执行下一步t=0,j=1,n[1]=n[0]+1; n[1]= 2; 当t=0,j=2时,
{ n[2]=n[0]+1; n[2] = 1;接着跳出内层for循环,执行外层for循环,t=1时,
n[j] = n[t] + 1; j = 0,n[j] = n[t] + 1即相当于n[0] = n[1] + 1;前面算出n[1] = 2,所以这里
} n[0] = 3;
}
printf("%d\n", n[1]);
追问
对的,但为什么呢?
追答
详细的执行步骤已经附加到旁边了,希望能帮到你!上面当t=0,j=2时,n[2]=n[0]+1; n[2] = 2,不小心打错了。
展开全部
for (t=0; t<3; t++)
{
n[t] = 0;
}
开始时一维数组三个元素都被赋值为0
for (t=0; t<k; t++)
{
for (j=0; j<3; j++)
{
n[j] = n[t] + 1;
}
}
当t=0时
j=0 n[0]=n[0]+1=1
j=1 n[1]=n[0]+1=2
j=2 n[2]=n[0]+1=2
当t=1时
j=0 n[0]=n[1]+1=3
j=1 n[1]=n[1]+1=3
j=2 n[2]=n[1]+1=4
{
n[t] = 0;
}
开始时一维数组三个元素都被赋值为0
for (t=0; t<k; t++)
{
for (j=0; j<3; j++)
{
n[j] = n[t] + 1;
}
}
当t=0时
j=0 n[0]=n[0]+1=1
j=1 n[1]=n[0]+1=2
j=2 n[2]=n[0]+1=2
当t=1时
j=0 n[0]=n[1]+1=3
j=1 n[1]=n[1]+1=3
j=2 n[2]=n[1]+1=4
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询