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

不明白例子里的for循环里i和j的值是怎么回事

我有点懵逼,第一个for循环中i!=9,i是个位数还是十位数?第二个for循环中控制每趟比较的最大下标,下标是指个位数么?第三个for循环中控制相邻元素比较的下标,这个又是什么意思?谁能给我解释解释?

正在回答

6 回答

i不等于9的意思是把数组arr[9]输出时后面少一个逗号而已。下面的两个for嵌套循环是为了实现冒泡排序,冒泡排序就是把数组下标最大的那个项不和前一项进行对比,把数组中大的数不断向前交换,不段这样只用数值下标数-1次循环就可以把数组变成有序的数组。

列如:arr[0]=5; arr[1]=6; arr[2]=9; arr[3]=8;

冒泡循环第一次:arr[0]=9; arr[1]=5; arr[2]=6; arr[3]=8;

冒泡循环第二次:arr[0]=9; arr[1]=8; arr[2]=5; arr[3]=6;

冒泡循环第三次:arr[0]=9; arr[1]=8; arr[2]=6; arr[3]=5;

以上只用4-1次就把数组排序成有序数组了。

下标就是 {arr[]=1;}这个[]里的数值,主要是用来标记该元素在数组中的位置。

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

慕妹9005614 提问者

非常感谢!明白了!哈哈哈,谢谢啦!
2017-10-06 回复 有任何疑惑可以回复我~
#2

慕妹9005614 提问者

我还有一个问题,就是这个for循环为什么从8开始?从8开始的话,数组的最后一个数不是就不参与排序了么?因为,从0到8的话一共就九个元素参与排序对吧?
2017-10-10 回复 有任何疑惑可以回复我~
#3

慕妹9005614 提问者

还有一个问题就是,if循环中为什么不能使用i作为变量,而要使用J?我试了试用i结果运行出错了。
2017-10-10 回复 有任何疑惑可以回复我~
#4

源之辰 回复 慕妹9005614 提问者

我这边刚刚停电了,我可能明天找时间给你解答
2017-10-10 回复 有任何疑惑可以回复我~
#5

慕妹9005614 提问者 回复 源之辰

好的,谢谢啦
2017-10-10 回复 有任何疑惑可以回复我~
#6

慕妹9005614 提问者 回复 慕妹9005614 提问者

(⊙o⊙)…这个问题我自己搞懂了。昨天晚上不知道为什么没想明白。哈哈哈,谢谢啦!
2017-10-11 回复 有任何疑惑可以回复我~
查看3条回复

没懂呢

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

正好我也不会。

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

感谢~

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

慕妹9005614 提问者

哈哈哈,相互学习嘛~
2017-10-16 回复 有任何疑惑可以回复我~

for循环里i=8开始是因为后面j+1就是第十个数据了{0…8 9(9就是j+1)}

  第二个问题里用j而不用i,这个是因为只有j才是数据比较用的字符,而i只是起一个限定循环次数的作用。运行过程大概是

94 99---1

   95 99---2

      93 99---3

         92 99---·4

            91 99---5

               90 99---6

                  88 99---7

                     97 99---8

                        89 99---9(j+1)


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

我先说一下我理解的下面的那两个for循环是什么样子吧,

for(i=8; i>=0; i--)

    {

        for(j=0;j<=i;j++)

        {

            if(arr[j]>arr[j+1])  

,我的理解是从数组下标是8的数据开始,也就是数组的倒数第二个数据97,然后第二个for循环选取的是数组下标是0的数据,也就是99。将这两个数据进行比较,如果符合if条件则交换位置

整个运行过程应该是这个样子

:99 94 95 93 92 91 90 88 97 89

97 88 90 91 92 93 95 94 99 89

97 99 88 94 90 95 91 93 92 89

92 97 93 99 88 91 94 95 90 89

90 92 95 97 93 94 91 99 88 89

88 90 92 99 91 95 94 97 93 89

88 93 90 97 92 94 95 99 91 89\\这里出现循环  同下备注的

88 91 93 99 90 95 94 97 92 89

88 92 91 97 93 94 95 99 90 89

88 90 92 99 91 95 94 97 93 89

88 93 90 97 92 94 95 99 91 89\\循环

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

慕妹9005614 提问者

这些问题我都明白了,哈哈哈
2017-10-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

不明白例子里的for循环里i和j的值是怎么回事

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信