main() {int i,k,a[10],p[3]; k=5; for(i=0;i<10;i++) a[i]=i; for(i=0;i<3;i++) p[i]=a[i*(i+1)]; for(i
麻烦解题思路谢谢啊main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[...
麻烦解题思路谢谢啊
main()
{int i,k,a[10],p[3];
k=5;
for(i=0;i<10;i++) a[i]=i;
for(i=0;i<3;i++) p[i]=a[i*(i+1)];
for(i=0;i<3;i++) k+=p[i]*2;
printf("%d\n",k);
} 展开
main()
{int i,k,a[10],p[3];
k=5;
for(i=0;i<10;i++) a[i]=i;
for(i=0;i<3;i++) p[i]=a[i*(i+1)];
for(i=0;i<3;i++) k+=p[i]*2;
printf("%d\n",k);
} 展开
1个回答
展开全部
这是c语言的循环结构: 每条for 语句之后都没有{,所以不存在嵌套。执行顺序如下:
第1个for循环, 直接对数组a中的每一个元素赋值,即a[0]=0,a[1]=1,...,依次类推,a[9]=9;
第2个for循环, 直接对数组p中的每一个元素赋值,即p[0]=a[0*1]=a[0]=0,p[1]=a[1*2]=a[2]=2,p[2]=a[2*3]=a[6]=6;
第3个for循环, 是对k的值进行加运算, k+=p[i]*2等价于 k=k+p[i]*2;
当i=0时,k=k+p[0]*2=5+0*2=5;//注意k已经被赋值(k=5),初值为5。
当i=1时,k=k+p[1]*2=5+2*2=9;
当i=2时,k=k+p[2]*2=9+6*2=21;//注意k的值已经发生变化。
第1个for循环, 直接对数组a中的每一个元素赋值,即a[0]=0,a[1]=1,...,依次类推,a[9]=9;
第2个for循环, 直接对数组p中的每一个元素赋值,即p[0]=a[0*1]=a[0]=0,p[1]=a[1*2]=a[2]=2,p[2]=a[2*3]=a[6]=6;
第3个for循环, 是对k的值进行加运算, k+=p[i]*2等价于 k=k+p[i]*2;
当i=0时,k=k+p[0]*2=5+0*2=5;//注意k已经被赋值(k=5),初值为5。
当i=1时,k=k+p[1]*2=5+2*2=9;
当i=2时,k=k+p[2]*2=9+6*2=21;//注意k的值已经发生变化。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询