第1个回答 推荐于2016-04-09
/* Note:Your choice is C IDE */
#include "stdio.h"
#define N 10
void main()
{ void arrage(int *p);
int str[N],i;
printf("请输入分别输入整数:\n");
for(i=0;i<N;i++)
scanf("%d",&str[i]);
arrage(str);
}
void arrage(int *p)
{
int i,j,temp;
for(i=0;i<N-1;i++)
{
for(j=0;j<N-1-i;j++)
if(*(p+j)>*(p+j+1))
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
for(i=0;i<N;i++)
printf("%4d",*(p++));
}
用这个来试试吧。。。。
这个是由小到大来排列的。如果你想由大到不就变成这样吧:
/* Note:Your choice is C IDE */
#include "stdio.h"
#define N 10
void main()
{ void arrage(int *p);
int str[N],i;
printf("请输入分别输入整数:\n");
for(i=0;i<N;i++)
scanf("%d",&str[i]);
arrage(str);
}
void arrage(int *p)
{
int i,j,temp;
for(i=0;i<N-1;i++)
{
for(j=0;j<N-1-i;j++)
if(*(p+j)<*(p+j+1))
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
for(i=0;i<N;i++)
printf("%4d",*(p++));
}本回答被网友采纳