编写一个将n个整数用选择法按从小到大的顺序排序的函数void sort(int*p,int n),在主函数中两次调用,对3,9,

编写一个将n个整数用选择法按从小到大的顺序排序的函数void sort(int*p,int n),在主函数中两次调用,对3,9,2,8,6,1和11,5,18,7,2,15,4,13,9,3两组数进行排序.

#include<stdio.h>
void sort(int *p,int n);
int main()
{
int i,arr1[6]={3,9,2,8,6,1},arr2[10]={11,5,18,7,2,15,4,13,9,3};
sort(arr1,6);
sort(arr2,10);
printf("排序的结果:\n");
for(i=0;i<6;i++)
printf("%3d",arr1[i]);

printf("\n");
for(i=0;i<10;i++)
printf("%3d",arr2[i]);
}

void sort(int *p,int n)
{
int i,j,temp;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(p[i]>p[j])
{
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-26
已经在VC6上运行确认:
#include<stdio.h>

void sort(int *p,int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(p[j]<p[k])k=j;
if(k!=i)
{t=p[i];p[i]=p[k];p[k]=t;}
}
}

printf("\nAfter Sort: \n");
for(i=0;i<n;i++)
{
printf("%d\t",p[i]);
}

}

void main()
{
int a1[6]={3,9,2,8,6,1},a2[10]={11,5,18,7,2,15,4,13,9,3},i;

sort(a1,6);

sort(a2,10);
}