当前位置:编程学习 > C#/ASP.NET >>

这段代码 问题在哪 谢谢求解



#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 希望大哥大姐多多带带 --------------------编程问答-------------------- --------------------编程问答--------------------
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,