|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
void main()
{
extern void sort(int x[],int n);
int a[10];
int i;
for(i = 0;i < 10;i++)
{
scanf("%d",&a[i]);
}
for(i = 0;i < 10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
sort(a,10);
for(i = 0;i < 10;i++)
{
printf("%d ",a[i]);
}
}
void sort(int x[],int n)
{
int i,j,temp;
for(i = 0;i < (n - 1);i++)
{
j = (i + 1);
if(i < j)
{
temp = x[i];
x[i] = x[j];
x[j] = temp;
}
}
}
本帖最后由 jackz007 于 2019-2-27 00:08 编辑
- j = (i + 1);
- if(i < j)
- {
- temp = x[i];
- x[i] = x[j];
- x[j] = temp;
- }
复制代码
把数组索引值的大小作为调整元素顺序的依据不知楼主是如何考虑的。
排序函数 sort() 没有功能,我已经重写,楼主可以测试效果。
- #include <stdio.h>
- void sort(int x[] , const int n)
- {
- int i , j , temp ;
- for(i = 1 ; i < n ; i ++) {
- j = i ;
- while(j > 0 && x[j] < x[j - 1]) {
- temp = x[j] ;
- x[j] = x[j - 1] ;
- x[j - 1] = temp ;
- j -- ;
- }
- }
- }
- main(void)
- {
- int i , a[10] ;
- for(i = 0 ; i < 10 ; i ++) scanf("%d" , & a[i]) ;
- for(i = 0 ; i < 10 ; i ++) printf("%d " , a[i]) ;
- printf("\n") ;
- sort(a , 10) ;
- for(i = 0 ; i < 10 ; i ++) printf("%d " , a[i]) ;
- printf("\n") ;
- }
复制代码
|
|