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

admin2016-12-06  56

问题 下列给定程序中,函数fun的功能是:将n个无序整数从小到大排序。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
    试题程序:
1   #include<conio.h>
2  #include<stdio.h>
3   #include<stcllib.h>
4   fun(int n,int*a)
5   {
6    int i,j,p,t;
7    for(j=0;j8    {
9    p=j;
10    /*********found*********/
11    for(i=j+1 ; i12    if(a[p]>a)
13   /********* found*********/
14    t=i;
15    if(p!=j)
16    {t=a[j];a[j]=a[p];a[p]=t;}
17    }
18  }
19  putarr(int n,int * z)
20   {
21    int i ;
22    for(i=1;i<=n;i++,z++)
23    {
24    printf(’’%4d’’,*z);
25    if(!(i%10))printf(’’\n’’);
26    }
27   printf(’’\n’’);
28  }
29  void main()
30   {
31    int aa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11;
32    system(’’CLS’’);
33    printf (’’\nBefore sorting %d numbers:\n’’,n);
34    putarr(n,aa);
35    fun(n,aa);
36    printf(’’\nAfter sorting % d numbers:\n’’,n);
37    putarr(n,aa);
38  }

选项

答案(1)for(i=j+1;i
解析 该程序是对n个无序数实现从小到大的排序,先找出整数序列的最小项,置于指针第1个元素的位置;再找出次小项,置于第2个元素的位置;之后顺次处理后续元素。
    (1)数组的长度为n,所以最后一个元素的下标值为n-1,i的取值范围应该包括此下标值。
    (2)p是中间变量,存放值较小的元素下标。
转载请注明原文地址:https://kaotiyun.com/show/rVDp777K
0

最新回复(0)