这个循环我看不明白?

bin002003 2008-06-19 04:15:01
#include <iostream.h>
void main()
{ int a[4],i,j,k;
for(i=0;i<4;i++) a[i]=0;
k=3;
for(i=0;i<k;i++)
for(j=0;j<=k;j++)
a[j]=a[i]+2; //有谁能给我解释一下这里的过程啊?我感觉这太乱啊!!!! cout<<a[1]<<" "<<a[3]<<endl;
}
...全文
85 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bin002003 2008-06-19
  • 打赏
  • 举报
回复
感谢大家!
我看明白啦
这没有越界啊!
我调试过
这是我们课本上的题目
让我们写结果!题目真变态
蜥蜴枪王 2008-06-19
  • 打赏
  • 举报
回复
for(j=0;j <=k;j++),这里好象会出错吧~~a[j]j的取值不能超过3...当J=K=3时a[3]是一个无法估计的值,越界了
蜥蜴枪王 2008-06-19
  • 打赏
  • 举报
回复
4楼的说得不错~~~其实这可以看成是一个"4x3"数组~~四行三列
9527他大爷 2008-06-19
  • 打赏
  • 举报
回复
#include <iostream.h>
void main()
{
int a[4],i,j,k;

for(i=0;i <4;i++)
a[i]=0;

k=3;
for(i=0;i <k;i++)
{
for(j=0;j <=k;j++)
{
a[j]=a[i]+2; //有谁能给我解释一下这里的过程啊?我感觉这太乱啊!!!!
}
}
cout <<a[1] <<" " <<a[3] <<endl;
}
K行天下 2008-06-19
  • 打赏
  • 举报
回复
for(i=0;i <k;i++)
for(j=0;j <=k;j++)
a[j]=a[i]+2; //有谁能给我解释一下这里的过程啊?我感觉这太乱啊!!!!
这个你从外面看起, i是从0到k-1也就是2, 取0,1,2第一次循环取0,然后进入第二层循环

j从0到3, 循环四次: a[0] = a[0] +2; a[1]=a[0]+2;a[2]=a[0]+2;a[3]=a[0]+2;

循环完之后,i增加到1,再次进入内部循环;。。。。。最后i增加到2,内部循环。。。
fox000002 2008-06-19
  • 打赏
  • 举报
回复
  for(j=0;j <=k;j++) 


这个会越界,请注意。。
fox000002 2008-06-19
  • 打赏
  • 举报
回复

i 0 1 2 3
0 0 0 0
0 -> 2 2+2 2+2 2+2
1 -> 4+2 4+2 6+2 6+2
2 -> 8+2 8+2 8+2 10+2
3 -> 12+2 12+2 12+2 12+2


没太乱啊,只是意图不明
Crazy_Sunp 2008-06-19
  • 打赏
  • 举报
回复
没看懂这个程序要干嘛,呵呵
xkyx_cn 2008-06-19
  • 打赏
  • 举报
回复
呵呵,是够混乱,单步调试是最好的办法
artman 2008-06-19
  • 打赏
  • 举报
回复
单步debug

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧