在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]);
展开
 我来答
香梦沉酣2012
2012-12-01 · TA获得超过3063个赞
知道大有可为答主
回答量:2686
采纳率:76%
帮助的人:1471万
展开全部
输出结果是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]);
追问
对的,但为什么呢?
追答
详细的执行步骤已经附加到旁边了,希望能帮到你!上面当t=0,j=2时,n[2]=n[0]+1; n[2] = 2,不小心打错了。
neuq1234567
2012-12-01 · 超过29用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:75.1万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晨曦献
2012-12-01 · 超过17用户采纳过TA的回答
知道答主
回答量:125
采纳率:100%
帮助的人:30.3万
展开全部
3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式