#include "stdio.h"
#include "conio.h" int Max(int *a,int *b);
main()
{
    
    int i,j;
    int a[10]={1,10,3,9,4,8,5,2,7,6};
   int lengh=sizeof(a);
    /*int lengh=10*/;
    for (i=0;i<lengh-1;i++)
    {
        for(j=i+1; j<lengh;j++)
        {
            if(Max(&a[i],&a[j])==1)
            {     int c;
                printf("bit %d %d\n",a[i],a[j]);                c=a[i];
                a[i]=a[j];
                a[j]=c;
                printf("bit %d %d\n",a[i],a[j]);
            }
        }
    
    }
    for(i=0;i<lengh;i++)
    {
        printf("%d\n",a[i]);
    }
    getch();
}
int Max(int *a,int *b)
{    if(   *a<*b)
    {        return 1;
    }
    else
    {
        return 0;
    }
}代码的结果
a[0]=20;其他都正常;
如果把lengh的定义换成 "int lengh=10" 结果有正确,请教高手解答.我是学C#的现在掉头学习C 希望大哥大姐多多带带