鸿氏 发表于 2021-3-21 13:32

数组上限




图一是源代码(插入排序),图二是运行结果,这个33是哪里来的
我知道代码有错,第一个循环应该是i<=5,但是不知道为什么会出现33,而且每次运行都是33

yacc 发表于 2021-3-21 13:44

估计是数组越界,内存里a再往后的位置正好是33,给你当成7个数字排序了,最后输出前六个,最大的没了。

ZHXZHX 发表于 2021-3-21 14:17

你将排序过程输出就知道了。C语言不检查边界,33是边界外的值,而你代码刚好把33也算到插入排序。

晨星的天空 发表于 2021-3-21 15:00

a存的是33

小木曾雪菜 发表于 2021-3-21 15:45

数组越界了,i<=6会出现a

鸿氏 发表于 2021-3-26 21:27

yacc 发表于 2021-3-21 13:44
估计是数组越界,内存里a再往后的位置正好是33,给你当成7个数字排序了,最后输出前六个,最大的没了。

也就是说a=33?a我没有定义初始化过啊

鸿氏 发表于 2021-3-26 21:28

晨星的天空 发表于 2021-3-21 15:00
a存的是33

33这个值是随机的吗

yacc 发表于 2021-3-26 21:43

鸿氏 发表于 2021-3-26 21:27
也就是说a=33?a我没有定义初始化过啊

可能跟编译器有关,也可能是内存里随机的数据,反正不要越界就对了:lol
页: [1]
查看完整版本: 数组上限