问答题
下列给定程序中proc()函数的功能是:将n个无序整数按从小到大排序。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
void proc(int n,int *arr)
{
int i, j, p, t;
for(j=0; j<n-1; j++)
{
p=j;
//****found****
for(i=j+1; i<n-1; i++)
if(arr[p]>arr[i])
//****found****
t=i;
if(p!=j)
{t=arr[j]; arr[j]=arr[p]; arr[p]=t; }
}
}
void putarr(int n, int*z)
{
int i;
for(i=1; i<=n; i++, z++)
{
printf("%4d", *z);
if(!(i%10)) printf("/n");
}
printf("/n");
}
void main()
{ int arr[20]={9, 3, 0, 4, 1, 2, 5, 6, 8, 10, 7},
n=11;
system("CLS");
printf("/n/nBefore sorting %d numbers:
/n", n); putarr(n, arr);
proc(n, arr);
printf("/nAfter sorting %d numbers:
/n", n); putarr(n, arr);
}