下列给定的程序中,函数fun()的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #inclu

admin2010-05-05  12

问题 下列给定的程序中,函数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<a[p])
   /*************found**************/
           p=j;
       t=a[p]; a[p]=a[j]; a[j]=t;
      }
   }
   main()
   {int a[N]={9.6,8,3,-1},i,m=5;
    printf("排序前的数据: ");
    for(i=0;i<m;i++)  printf("%d",a);
        printf("\n");
    fun(a,m);
    printf("排序后的顺序: ");
    for(i=0;i<m;i++) printf("%d",a);
        printf("\n");
   }

选项

答案(1)错误:p=j 正确:p=j; (2) 错误:p=j; 正确:p=i;

解析 题中所提到的“从小到大”的顺序。这类题都可以利用选择法,即从后N个比较过程中,选择一个最小的与第一个元素交换,依次类推,即用第二个元素与后N-1个进行比较,并进行交换。该题也是与我们常见的C语言排序题类似,当然也是改错和编程题中的重点,请看同类试题,以便达到举一反三的目的。
转载请注明原文地址:https://kaotiyun.com/show/mXID777K
0

最新回复(0)