C语言 四个数排序

来源:百度知道 编辑:UC知道 时间:2024/05/25 18:23:40
刚学C语言,不大明白,有道题说任意输入四个数,然后由小到大排列.
当运行以下代码时,输出有错,哪位高手帮帮忙,指出错误之处,万分感谢!!!!!

#include<stdio.h>
void main()
{
int a,b,c,d,e,f,g,h,i,j,k,l,m,n;
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
if(a>=b)
{
e=a;
f=b;
}
else
e=b;
f=a;
if(c>=d)
{
g=c;
h=d;
}
else
g=d;
h=c;
if(e>=g)
{
i=e;
k=g;
}
else
i=g;
k=e;
if(f<=h)
{
j=f;
l=h;
}
else
j=h;
l=f;
if(k>=l)
{
m=k;
n=l;
}
else
n=k;
m=l;
printf("%d %d %d %d",j,n,m,i);
}

建议换个算法,如冒泡排序,你的算法可读性比较差,代码如下。
#include<stdio.h>
void main()
{
int a[4];
int i,j,temp;
printf("please input data:\n");
for(i=0 ;i<4; i++)
{
scanf("%d",&a[i]);
}

for(i=0; i<4; i++)
{
for(j=0; j<4-i; j++)
{
if(a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
printf("result:\n");
for(i=0 ;i<4; i++)
{
printf("%d\n",a[i]);
}
}

建议看看冒泡排序,快速排序,插入排序等算法,你写的程序没有技术含量,可读性也差,恐怕没有人愿意看你的程序。好好努力吧。

这种算法实在太糟糕了,,建议换个算法,,
唉。。这样子,编程简直就是受罪了!