第1道是错误的:
main()
{
int a[10],i,k,j,temp;
printf("input 10 number:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%6d",a[i]);
printf("\n");
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
if(a[i]<a[j]) ;
temp=a[i];a[i]=a[j];a[j]=temp;}
for(i=0;i<10;i++)
printf("%6d",a[i]);
}
第2道正确的:main()
{
int a[10],i,k,j,temp;
printf("input 10 number:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%6d",a[i]);
printf("\n");
for(i=0;i<10;i++)
{k=i;
for(j=i+1;j<10;j++)
if(a[k]<a[j]) k=j;
temp=a[i];a[i]=a[k];a[k]=temp;}
for(i=0;i<10;i++)
printf("%6d",a[i]);
}
为什么要用k来转换才是正确的,感觉没有区别,可是结果不一样
main()
{
int a[10],i,k,j,temp;
printf("input 10 number:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%6d",a[i]);
printf("\n");
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
if(a[i]<a[j]) ;
temp=a[i];a[i]=a[j];a[j]=temp;}
for(i=0;i<10;i++)
printf("%6d",a[i]);
}
第2道正确的:main()
{
int a[10],i,k,j,temp;
printf("input 10 number:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%6d",a[i]);
printf("\n");
for(i=0;i<10;i++)
{k=i;
for(j=i+1;j<10;j++)
if(a[k]<a[j]) k=j;
temp=a[i];a[i]=a[k];a[k]=temp;}
for(i=0;i<10;i++)
printf("%6d",a[i]);
}
为什么要用k来转换才是正确的,感觉没有区别,可是结果不一样


