输入4个整数,要求按由小到大的顺序输出,用C语言怎么编程呀?求高人指点呀!

最好把每一步什么意思说出来,谢谢呀!

#include<stdio.h>

#define MAX 4 //定义输入数的个数

void main ()
{
int a[MAX], i, j, tmp;

printf ("input %d numbers:\n", MAX);
for (i = 0; i < MAX; i++) {
scanf ("%d", a+i);
for (j = 0; j < i; j++) //从第一个数开始与这个输入的数比较
if (a[i] < a[j]) { //如果输入的数比前面的数小就和那个数换位置
tmp = a[j];
a[j] = a[i];
a[i] = tmp;
}
}
printf ("\nThe numbers are: \n");
for (i = 0; i < MAX; i++)
printf ("\n%d \t", a[i]);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-06-01
冒泡排序 ...
第2个回答  2007-06-01
#include <stdio.h>
void main()
{
int a[4];
int i, j, temp;

printf("input four integer:\n");
scanf("%d%d%d%d", &a[0], &a[1], &a[2], &a[3]);

for(i = 0; i < 3; i++) /*排序*/
for(j = i + 1; j < 4; j++)
{
if(a[i] > a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
for(i = 0; i < 4; i++) /*输出*/
{
printf("%d\t", a[i]);
}
}
第3个回答  2007-06-02
pascal的快排
procedure qsort(l,r:longint);
var i,j,x,y:longint;
begin
i:=l;
j:=r;
x:=a[(l+r) div 2];
repeat
while a[i]<=x do inc(i);
while a[j]>=x do dec(j);
if i<j then begin
y:=a[i]; a[i]:=a[j]; a[j]:=y;
end;
until i>j;
if i>l then qsort(l,i);
if j<r then qsort(j,r);
end;

冒泡属于时间复杂度相当大的吧?不过只有四个数,还好。