已有56人关注
书中例题:7.10
发表在C#图书答疑 2022-10-27 《C#从入门到精通(第4版)》第7章 数组和集合
是否精华
版块置顶:

static void Main(string[] args)
        {
            int[] arr = new int[] { 63, 4, 24, 1, 3, 15 };//定义一个一维数组,并赋值
            for (int i = 0; i < arr.Length; ++i)//循环访问数组中的元素
            {
                int temp = arr[i];//定义一个int变量,并使用获得的数组元素值赋值
                int j = i;
                while ((j > 0) && (arr[j - 1] > temp))//判断数组中的元素是否大于获得的值
                {
                    arr[j] = arr[j - 1];//如果是,则将后一个元素的值提前
                    --j;
                }
                arr[j] = temp;//最后将int变量存储的值赋值给最后一个元素
            }
            Console.WriteLine("排序后结果为:");
            foreach (int n in arr)//循环访问排序后的数组元素并输出
                Console.Write("{0}", n + " ");
            Console.WriteLine();
            Console.ReadLine();
        }
    }
}


arr[j] = arr[j - 1];//如果是,则将后一个元素的值提前
 arr[j] = temp;//最后将int变量存储的值赋值给最后一个元素


请问这两句都是向arr[j]赋值,为什么不是重复?                  

分享到:
精彩评论 2
小禾斗
学分:7303 LV13
TA的每日心情
奋斗
2017-04-21 14:00:25
2022-10-27
沙发

这两处的j不是一个内容,第一处是内层循环中的,在不断变化,是每趟排序过程中的交换值;而第二处是每趟排序完后固定了j的位置,记录临时值,以便开始下一趟的排序用的

亨瑞_1706227971
学分:224 LV4
2022-11-07
板凳

小禾斗 发表于2022-10-27 17:20

这两处的j不是一个内容,第一处是内层循环中的,在不断变化,是每趟排序过程中的交换值;而第二处是每趟排序完后固定了j的位置,记录临时值,以便开始下一趟的排序用的

感谢王老师的解答


虽然还是没有看明白

首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照