C语言程序运行后,系统出现错误报告。运行环境VC6.0,win XP模拟器。

2025-05-08 00:34:30
推荐回答(1个)
回答1:

你好,在冒泡排序的内层循环中,变量i的最大值是6,而if里的判断出现了i+1,导致数组越界,因为C语言数组下标从0开始,而由你之前的数组声明看,最大下标应该就到6。
另外,虽然不是什么错误,但既然你已经空出了数组第一个空间不用,就没必要再另外声明一个n用于交换两数了。

冒泡排序:
for (j = 1; j < 6; j++)
for (i = 1; i < 7-j; i++)
if (a[i] < a[i+1]) {
//交换a[i]和a[i+1]
}