这段代码 问题在哪 谢谢求解
#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#