为了账号安全,请及时绑定邮箱和手机立即绑定

为你什么事1,3,5,7,9

https://img1.sycdn.imooc.com//5b438d3000013dbb06140499.jpg

我理解的是1,2,3,4,5,67,8,9,

正在回答

2 回答

++i 的效果等价于 i = i + 1,所以 n[i] = ++i 这样会直接影响到 for 循环里 i 的值,for 循环实际只循环了 5 次,i 的值依次为 0, 2, 4, 6, 8:

// 第1次。上一次 i 的值为 0,i 在循环初始 (0++) 为 0
n[0] = (i = 0 + 1);
// 此时 i 变成了 1; n 为 [1]

// 第2次。上一次 i 的值为 1,i 在循环初始 (1++) 为 2
n[2] = (i = 2 + 1);  // 跳过了 n[1]
// 此时 i 变成了 3; n 为 [1, empty, 3]

// 第3次。上一次 i 的值为 3,i 在循环初始 (3++) 为 4
n[4] = (i = 4 + 1);  // 跳过了 n[3]
// 此时 i 变成了 5; n 为 [1, empty, 3, empty, 5]

// 第4次。上一次 i 的值为 5,i 在循环初始 (5++) 为 6
n[6] = (i = 6 + 1);  // 跳过了 n[5]
// 此时 i 变成了 7; n 为 [1, empty, 3, empty, 5, empty, 7]

//  第5次。上一次 i 的值为 7,i 在循环初始 (7++) 为 8
n[8] = (i = 8 + 1);  // 跳过了 n[7]
// 此时 i 变成了 9; n 为 [1, empty, 3, empty, 5, empty, 7, empty, 9]

//  第6次。上一次 i 的值为 9,i 在循环初始 (9++) 为 10,不满足 i < 10 的条件,for 循环结束。


1 回复 有任何疑惑可以回复我~

问题出在第14行:

n[i] = ++i;

++i 是自增运算,表示 i 先自加1,然后再赋值给 i,这样 i 的值从每次都会自加1,从而导致数组 n 的索引不是连续的。改成下面这样即可输出你要的效果:

n[i] = i + 1;


0 回复 有任何疑惑可以回复我~
#1

web_東 提问者

n[i]中的i因该是0,1,2,3,4,5,6,7,8,9啊。按到它也递增?
2018-07-10 回复 有任何疑惑可以回复我~
#2

web_東 提问者

难到它也递增?
2018-07-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为你什么事1,3,5,7,9

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号