c语言题:输入四个数a,b,c,d,按从大到小的顺序输出

我曾用互换的方法作,但感到麻烦,哪位有高见

这类问题一般用起泡法解决.
#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的值,可以把任意多个数值按从大到小的顺序排列.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2006-09-15
把四个数放到数组里,然后冒泡,相当简单
第2个回答  2006-09-15
用排序
简单的用冒泡就行,其实就是互换。。。
第3个回答  2006-09-15
用冒泡吧
相似回答