C语言爱好者请进

来源:百度知道 编辑:UC知道 时间:2024/05/22 18:47:05
输入4个整数 从大到小顺序输出 那位高手引导下

呵呵 我这方法比较笨。。。全部把大于改成小于。。刚输错了
main()
{int a,b,c,d,e,f,g,h,j,i;
scanf("%d %d %d %d",&a,&b,&c,&d);
if(a>b)
{e=a;a=b;b=e;}
if(a>c)
{f=a;a=c;c=f;}
if(a>d)
{g=a;a=d;d=g;}
if(b>c)
{h=b;b=c;c=h;}
if(b>d)
{j=b;b=d;d=j;}
if(c>d)
{i=c;c=d;d=i}
printf("%d%d%d%d",a,b,c,d);
}

方法一、n个if语句嵌套,比较输出。
方法二、依次找最大,用循环。
这也比较麻烦,涉及数组删除数据。

方法三、选择排序:
定义一个四项数组:

int a[4];
int i,j,temp;

for (i=0; i<4; i++)
scanf ("%d", &a[i]);

for (i=0; i<3; i++)
for (j=i+1; j<4; j++)
if (a[i] < a[j]){
t = a[j];
a[j] = a[i];
a[i] = t;
}
该方法对n个数同样适用。

方法四:类似冒泡排序,但仅仅对较少数而言:
int i;
int a[4];
int temp;

for (i=0; i<4; i++)
scanf ("%d", &a[i]);

for (i=0; i<3; i++)
if (a[i] < a[i+1]){
temp = a[i];
a[i]