数组赋值 ,用循环变量 i +1 给它赋值,为什么输出的不对?

weixin_42319400 2019-01-23 11:26:01
在dev c++中

数组赋值 ,用循环变量 i +1 给它赋值,为什么输出的不对?

输出的是 0 1 2 3 4 5
为什么不是 1 2 3 4 5 ?

代码如下,请教老师解答,谢谢

for(int i=0;i<5;i++)
{
shuzu1[i]=i+1;

}

for(int j=0;j<len;j++)
{
cout<<j<<"\t";

}
cout<<endl;



输出的是 0 1 2 3 4 5
为什么不是 1 2 3 4 5 ?
...全文
167 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin5161678 2019-01-24
  • 打赏
  • 举报
回复
引用 4 楼 weixin_42319400 的回复:
for(int i=0;i<5;i++)
{
shuzu1[i]=i+1;

}

for(int j=0;j<5;j++)
{
cout<<shuzu1[j]<<"\t";

}
cout<<endl;


代码打错了,不好意思。正确的应是上边的,输出时不对

另外,教程中

第一个 for(int i=0;i<5;i++)
{ ......}

第二个 for( i=0;i<5;i++)
{ ......}

二个循环变量 i 可用,

可以dev c++中,实际输入时,二个变量都是 i ,就会报错,
教程用的是vc6,
是不是vc6与dev c++的原因?
这是vc6的一个bug
语法上 i 的作用域 只限循环
后面一个循环重新定义 i 是没问题的

但vc6 这个作用域限制没处理好
导致 i 作用域范围是for所在的块
weixin_42319400 2019-01-24
  • 打赏
  • 举报
回复
for(int i=0;i<5;i++)
{
shuzu1[i]=i+1;

}

for(int j=0;j<5;j++)
{
cout<<shuzu1[j]<<"\t";

}
cout<<endl;


代码打错了,不好意思。正确的应是上边的,输出时不对

另外,教程中

第一个 for(int i=0;i<5;i++)
{ ......}

第二个 for( i=0;i<5;i++)
{ ......}

二个循环变量 i 可用,

可以dev c++中,实际输入时,二个变量都是 i ,就会报错,
教程用的是vc6,
是不是vc6与dev c++的原因?

zhouqunhai 2019-01-24
  • 打赏
  • 举报
回复
直接输出j,而不是shuzu1[j]
636f6c696e 2019-01-24
  • 打赏
  • 举报
回复
楼上说的没错 因为你直接输出j,而不是shuzu1[j] 而且这个len也不知道是哪里来的
lin5161678 2019-01-24
  • 打赏
  • 举报
回复
因为你输出的是 j

33,311

社区成员

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

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