#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 希望大哥大姐多多带带
#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 希望大哥大姐多多带带
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货