以下是引用vs_inzaghi在2010-7-22 12:56:54的发言:
你是用的a和a两个变量,所以你应该写成
……
for (j=0; j<9;j++)
{
for (i=0;i<9-j ;i++ )
……
如果你还是i<10-j的话,那么当开始j=0的时候,i的值会一直涨到9,那么你实际是在比较a[9]和a[10]的大小……而,根本就不可能有a[10]……
好像是因为c语言对数组不做越界检查,所以你能通过编译并运行,但是得不到你想要的结果……
我感觉我的理解应该有道理,但是……我按你的程序也得出了正确的结果……
可能a[10](指代a[9]后面的那个地址,因为没有a[10]的说法)中的值是随机的……
你是用的a和a两个变量,所以你应该写成
……
for (j=0; j<9;j++)
{
for (i=0;i<9-j ;i++ )
……
如果你还是i<10-j的话,那么当开始j=0的时候,i的值会一直涨到9,那么你实际是在比较a[9]和a[10]的大小……而,根本就不可能有a[10]……
好像是因为c语言对数组不做越界检查,所以你能通过编译并运行,但是得不到你想要的结果……
我感觉我的理解应该有道理,但是……我按你的程序也得出了正确的结果……
可能a[10](指代a[9]后面的那个地址,因为没有a[10]的说法)中的值是随机的……
谢谢指点啊