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

admin2010-11-26  15

问题 下列给定程序中,函数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;
   }
   }
   msin()
   {
   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=; (2)错误:p=j; 正确:p=i;

解析 题中提到按“从小到大”的顺序排序,这类题目都可以用选择排序法,即从后N个比较过程中,选择一个最小的与第一个元素交换,以此类推,即用第二个元素与后N-1个进行比较,并进行交换。
   错误1:此处错误比较明显,p=j后面应加分号。
   错误2:根据选择排序法的思路,此处应将i赋给p。
转载请注明原文地址:https://jikaoti.com/ti/WBkiFFFM
0

相关试题推荐
最新回复(0)