C语言数组问题(排序)
来源:百度知道 编辑:UC知道 时间:2024/05/14 13:10:34
main()
{int *p,i,a[10]={3,7,9,11,0,6,7,5,4,2};
printf("The original array:\n");
for(i=0;i<10;i++)
printf("%d,",a[i]);
printf("\n");
p=a;
sort(p,10);
for(p=a,i=0;i<10;i++)
{printf("%d ",*p);p++;}
printf("\n");
}
sort(int x[],int n)
{int i,j,k,t;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(x[j]>x[k])k=j;
if(k!=i)
{t=x[i];x[i]=x[k];x[k]=t;}
}
}其中i,j,k,t;各指的是什么变量?将行参的那段函数解释下
{int *p,i,a[10]={3,7,9,11,0,6,7,5,4,2};
printf("The original array:\n");
for(i=0;i<10;i++)
printf("%d,",a[i]);
printf("\n");
p=a;
sort(p,10);
for(p=a,i=0;i<10;i++)
{printf("%d ",*p);p++;}
printf("\n");
}
sort(int x[],int n)
{int i,j,k,t;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(x[j]>x[k])k=j;
if(k!=i)
{t=x[i];x[i]=x[k];x[k]=t;}
}
}其中i,j,k,t;各指的是什么变量?将行参的那段函数解释下
i .j .k .t 都属于int型变量 也就是整形变量
从FOR开始 主循环 i从0开始 ;最大下标为n-1;i以每次加一递增
将i值给K
子循环 J从i+1开始;最大下标为n; J以每次加一递增
如果x[j]>x[k] 刚将J值给K
如果k!=i也就是K不等于i时
交换部分 将x[i]值给T
将x[k]值给x[i〕
将T值给x[k]