下列给定程序中,函数fun()的功能是求出数组中最小数和次最小数,并把最小数和a[0]中的数对调,次最小数和a[1]中的数对调。 请改正程序中的错误,使它能得到正确结果。 [注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。

admin2010-11-26  28

问题 下列给定程序中,函数fun()的功能是求出数组中最小数和次最小数,并把最小数和a[0]中的数对调,次最小数和a[1]中的数对调。
   请改正程序中的错误,使它能得到正确结果。
   [注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。
   [试题源程序]
   #include  <stdio.h>
   #include  <conio.h>
   #define  N 20
   void fun(int *a, intn)
   {
   int  i, m, t, k;
   /************************found************************/
   for(i=0; i<n; i++)
   {
   m=i;
   for(k=i; k<n; k++)
   if(a[k]<a[m])
   /************************found************************/
   k=m;
   t=a;
   a=a[m];
   a[m]=t;
   }
   }

选项

答案(1)错误:for(i=0; i<n; i++) 正确:for(i=0; i<2; i++) (2)错误:k=m; 正确:m=k;

解析 错误1:由于题目要求将最小数和次最小数分别与a[0]和a[1]中的数对调,因此,这层循环只需循环两次。错误2:赋值语句的执行方向是从右到左,即把右边的值赋给左边的变量。
转载请注明原文地址:https://kaotiyun.com/show/nPID777K
0

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