数组冒泡法,有些细节不懂求指点
#include "stdio.h"#define N 6
int main(void)
{ int a, i, j, k; printf("输入N个整数:\n");
for ( i=0 ; i<N ; i++)
scanf("%d", &a) ;
for ( i=0; i<=N-2; i++)
for ( j=0; j<=N-2-i; j++)
if (a>a)
{ k=a; a=a; a=k;
} for (i=0; i<N; i++)
printf("%d\t", a);
return 0; }
下划线部分怎么理解啊,为什么不是N-1呢? 是为了正好使得判断不越界if (a>a)
是N-2时,a最大访问到a最后一个元素
是N-1时,a最大访问到a越界了
a>a //范围0->N-1,i=0时,最后j=N-2,j+1=N-1
页:
[1]