问答题
下列给定程序中, 函数 fun()的功能是: 将 n 个无序整数从小到大排序。 请改正程序指定部位的错误, 使它能得到正确结果。
注意:
不要改动函数 main(), 不得增行或删行, 也不得更改程序的结构。
【试题源程序】
#include
void fun(int n, int *a)
{
int i,j,p,t;
for(j=0;j
p=j;
/**********found**********/
for(i=j+1;i
/**********found**********/
t=i;
if(p!=j)
{
t=a[j];
a[j]=a[p];
a[p]=t;
}
}
}
void putarr(int n, int *z)
{
int i;
for(i=1;i<=n;i++,z++)
{
printf("%4d",*z);
if(!(i%10))
printf("\n");
}
printf("\n");
}
void main()
{
int aa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11;
printf("\n\nBefore sorting %d numbers:\n",n);
putarr(n,aa);
fun(n,aa);
printf("\nAfter sorting %d numbers:\n",n);
putarr(n,aa);
}
(1) 错误: for(i=j+1;i
正确: p=i;