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;各指的是什么变量?将行参的那段函数解释下

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]