改错题 下列给定程序中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:#include <stdio.h>
#define N 20
void fun(int a[], int n)
{
int i, j, t, p;
for (j=0; j<n-1; j++)
{
/********found********/
p = j
for (i=j; i<n; i++)
if(a[i] < a[p])
{
/********found********/
p = i;
t = a[p];
a[p] = a[i];
a[i] = t;
}
}
}
main()
{
int a[N] = {9, 6, 8, 3, -1}, i, m = 5;
printf("??Dò?°£o");
for (i=0; i<m; i++)
printf("%d,", a[i]);
printf("\n");
fun(a, m);
printf("??Dòoó£o");
for (i=0; i<m; i++)
printf("%d,", a[i]);
printf("\n");
}
第1处:p = j应改为p=j;
第2处:p = i应改为p=j;