这类问题一般用起泡法解决.
#include<stdio.h>
#define n 4
main()
{
int i,j,k,a[n],*p,temp;
p=a;
printf("\nInput %d numbers:\n",n);
for( i=0;i<n;i++,p++)
scanf("%d",p);
p=a;
printf("The original number is:\n");
for( i=0;i<n;i++,p++)
printf("%d\t",*p);
p=a;
for( i=0;i<n-1;i++)
{
k=i;
for( j=i+1;j<n;j++)
if( *(p+i)<*(p+j))
{
temp=*(p+i);*(p+i)=*(p+j);*(p+j)=temp;
}
}
p=a;
printf("\nThe sorted numbers is:\n");
for( i=0;i<n;i++,p++)
printf("%d\t",*p);
return 0;
}
这是一种通用的解法,通过设置n的值,可以把任意多个数值按从大到小的顺序排列.
温馨提示:答案为网友推荐,仅供参考