【程序37】
题目:对10个数进行排序
1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。
2.程序源代码:
#define N 10
main()
{int i,j,min,tem,a[N];
/*input data*/
printf("please input ten num:\n");
for(i=0;i
printf("a[%d]=",i);
scanf("%d",&a[i]);}
printf("\n");
for(i=0;i
printf("\n");
/*sort ten num*/
for(i=0;i
for(j=i+1;j
tem=a[i];
a[i]=a[min];
a[min]=tem;
}
/*output data*/
printf("After sorted \n");
for(i=0;i
}
用交换排序就OK了
//---------------------------------------------------------------------------
#include
void sort(int *a,int b,int e)
{
int l=b,r=e,k=a[b];
if (b
while (l
--r;
if (l
}
while (l
if (l
}
}
a[l]=k;
sort(a,b,l-1);
sort(a,l+1,e);
}
}
int main(void)
{
int i,a[10];
for (i = 0; i < 10; i++) {
scanf("%d",&a[i]);
}
sort(a,0,9);
for (i = 0; i < 10; i++) {
printf("%d ",a[i]);
}
return 0;
}
//---------------------------------------------------------------------------