私募债发行要求:选择排序

来源:百度文库 编辑:神马品牌网 时间:2024/05/01 17:12:35
#include "stdio.h"
void selectsort(int a[],int n)
{
int j,temp,i,p;
for(i=0;i<n-1;i++)
{p=i;
for(j=i+1;j<n-1;j++)
if(a[j]<a[p])
p=j;
if(p!=i)
{temp=a[p];
a[p]=a[j];
a[j]=temp;
}
}
return;
}
void enter(int a[],int n)
{
int i;

printf(" please input some number\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("\n the number is:\n");
for(i=0;i<n;i++)
printf("%d\n",a[i]);

printf("\n");
return;
}
void print(int a[],int n)
{
int i;
printf("\nthe sorted numbers:\n");
for(i=0;i<n;i++)
printf("%d\n",a[i]);
return;
}
main()
{
void enter(int a[],int n);
void selectsort(int a[],int n);
void print(int a[],int n);
int a[10],n;
printf("enter n:");
scanf("%d",&n);
enter(a,n);
selectsort(a,n);
print(a,n);
}
程序不能得到正确的结果
如输入 12 35 2 65
得到的还是12 35 2 65

看看这个函数(有改动):
void selectsort(int a[],int n)
{
int j,temp,i,p;
for(i=0;i<n-1;i++)
{p=i;
//###############################
for(j=n-1;j>i;j--)
//###############################
if(a[j]<a[p])
p=j;
if(p!=i)
{temp=a[p];
a[p]=a[j];
a[j]=temp;
}
}
return;
}

print(a,n)