c语言基础知识求教。多谢老师们

c语言基础知识求教。谢谢老师们
设计C语言程序,使用冒泡排序方法将数组age降序排列,数组age元素的值为{5,7,9,4,2,3,1,6,8}。
#include<stdio.h>
#define N 9
int main(void)
{
int a[9]={5,7,9,4,2,3,1,6,8};
int i,j,t;
for(j=0;j<=N-2;j++)
{
for(i=0;i<=N-j-2;i++)
if(a[i]<a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}




}
printf("排序结果:|n");
for(i=0;i<=N-1;i++)
printf("%3d",a[i]);
printf("|n");
return 0;

}
这里的N-2;,,,N-j-2是神魔意思
------解决方案--------------------
N-2 表示排序的范围下标
N-j-2 觉得写成N-2-j 更容易理解,表示当前排序的范围下标
------解决方案--------------------
N为9,N-2就为7,因为你只有9个数,所以两个数比较就要比较8次,i<=N-2,就表明i<=7,i是从0开始的,到7刚好是8次,所以是正确的,下面那个差不多