问答题
下列给定程序中,函数proc()的功能是求出数组中最小数和次最小数,并把最小数和arr[0]中的数对调,次最小数和arr[1]中的数对调。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
#include<conio.h>
#include<stdio.h>
#define M 20
void proc(int *arr, int n)
{
int i, m, t, k;
//****found****
for(i=0; i<n; i++)
{
m=i;
for(k=i; k<n; k++)
if(arr[k]<arr[m])
//****found****
k=m;
t=arr[i];
arr[i]=arr[m];
arr[m]=t;
}
}
void main()
{
int b[M]={11, 5, 12, 0, 3, 6, 9, 7, 10, 8},
n=10, i;
system("CLS");
for(i=0; i<n; i++)
printf("%d", b[i]);
printf("/n");
proc(b, n);
for(i=0; i<n; i++)
printf("%d", b[i]);
printf("/n");
}