填空题 下列给定程序中,函数fun的功能是:求出数组中的最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<conio.h>
#include<stdio.h>
#define N 20
/**********found**********/
void fun(int*a,int n);
{
int i,m,t,k;
for(i=0;i<n;i++)
{
/**********found**********/
m=0;
for(k=i+1;k<n;k++)
if(a[k]>a[m])
m=k;
t=a[i];
a[i]=a[m];
a[m]=t;
}
}
main()
{
int b[N]={11,5,12,0,3,6,9,7,10,8);
int n=10,i;
for(i=0;i<n;i++)
printf("%d",b[i]);
printf("/n");
fun(b,n);
for(i=0;i<n;i++)
printf{"%d,b[i]);
printf("/n");
}
【正确答案】
【答案解析】(1)void fun(int *a, int n)
(2)m=i; [解析] (1)语法错误,函数定义时不应该带有";"。
(2)这是一段简单的比较程序,m为有效比较数的下标。从下面的程序可以看出m=i; 。