给定程序MODll.C中fun函数的功能是:将n个无序整数从小到大排序。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include fun (in

admin2013-04-02  64

问题 给定程序MODll.C中fun函数的功能是:将n个无序整数从小到大排序。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
fun (int n, int *a)
{int i, j, p, t;
   for (j = 0; j   {p = j;
/************found************/
    for(i=j+1;i      if (a[p]>a)
/************found************/
         t=i;
    if (p!=j)
    {t = a[j]; a[j] = a[p]; a[p] = t;}
  }
}
putarr(int n, int *z)
{int i;
  for (i = 1; i <=  n; i++, z++)
  {printf("%4d", *z);
    if (!(i%10)) printf("\n");
  } printf("\n");
}
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);
}

选项

答案for(i=j+1;i
解析 (1)排序功能是要对n个无序数进行比较排序,内层for循环中的循环限制应该是小于n,所以第一个错误标识下的“for(i=j+1;i(2)“for(j=0;ja)”时,应该是将i的值赋值给p,而不是t,所以“t=i;”应改为“p=i;”。
转载请注明原文地址:https://jikaoti.com/ti/Win0FFFM
0

随机试题
最新回复(0)