搜索
查看: 2195|回复: 14
打印 上一主题 下一主题

四整数从小到大排序

[复制链接]
跳转到指定楼层
楼主
发表于 2013-2-11 15:59:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
从键盘读入四个整数,按从小到大排序输出。
我写的是这样,不知对不,运行试的话是可以,可总觉得很繁复。
#include <stdio.h>
int main()
{
    int a,b,c,d,t;
    scanf("%d %d %d %d",&a,&b,&c,&d);
    if(a>b)
    {
        t=a;
        a=b;
        b=t;
    }
    if(a>c)
    {
        t=a;
        a=c;
        c=t;
    }
    if(a>d)
    {
        t=a;
        a=d;
        d=t;
    }
    if(b>c)
    {
        t=b;
        b=c;
        c=t;
    }
    if(b>d)
    {
        t=b;
        b=d;
        d=t;
    }
    if(c>d)
    {
        t=c;
        c=d;
        d=t;
    }
    printf("%d %d %d %d",a,b,c,d);
    sleep(5000);
    return 0;
}


沙发
发表于 2013-2-11 16:43:16 | 只看该作者
神人啊,可以这样的,优化下更好
板凳
 楼主| 发表于 2013-2-11 18:25:08 | 只看该作者
其他的还没学,以我目前的能力加智商,只能这样了,呵呵,见笑了。。。
地板
 楼主| 发表于 2013-2-11 18:26:02 | 只看该作者
月光疾风 发表于 2013-2-11 16:43
神人啊,可以这样的,优化下更好

优化下吧。。嘿嘿。。。
5#
发表于 2013-2-11 18:42:31 | 只看该作者
sycamore1990 发表于 2013-2-11 18:26
优化下吧。。嘿嘿。。。

其实程序不在于他的算法,而在于它是否真的有用,能不能帮我们解决问题
6#
发表于 2013-2-14 23:54:13 | 只看该作者
貌似这样蛮好 试了试2 2比较跟你这个步骤一样多
7#
 楼主| 发表于 2013-2-15 00:14:52 | 只看该作者
qswaqswaqw 发表于 2013-2-14 23:54
貌似这样蛮好 试了试2 2比较跟你这个步骤一样多

嗯嗯 好的 谢谢啦
8#
发表于 2013-2-17 12:15:55 | 只看该作者
好长的代码
9#
 楼主| 发表于 2013-2-17 12:19:26 | 只看该作者
2549183965 发表于 2013-2-17 12:15
好长的代码

是哦,嘿嘿。。。。。
10#
发表于 2013-2-20 15:06:29 | 只看该作者
我看过一个冒泡法。

不过目前我还看不懂。。

看原理,冒泡法做这个就很不错
11#
发表于 2013-3-3 19:48:04 | 只看该作者
可以用多维数组
12#
发表于 2013-3-3 19:48:15 | 只看该作者
啊哈
。。。。。。。。。。。。。。。。。。
13#
发表于 2014-7-23 11:45:03 | 只看该作者
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b,c,d,t;
    scanf("%d %d %d %d",&a,&b,&c,&d);
    if(a>b) {t=a;a=b;b=t;}
    if(a>c) {t=a;a=c;c=t;}
    if(a>d) {t=a;a=d;d=t;}
    if(b>c) {t=b;b=c;c=t;}
    if(b>d) {t=b;b=d;d=t;}
    if(c>d) {t=c;c=d;d=t;}
    printf("%d %d %d %d",a,b,c,d);
        system("pause");
        return 0;
}[/mw_shl_code]
14#
发表于 2014-7-27 11:08:44 | 只看该作者
建议用排序算法
这种代码不具扩展性,而且效率低
15#
发表于 2017-8-18 21:58:52 | 只看该作者
本帖最后由 Windowsredstone 于 2017-8-18 22:00 编辑

冒泡排序法

[mw_shl_code=c,true]#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
int main()
{
        int a[4];
        int i;
        for(i=0; i<4; i++)
                scanf("%d",&a);
        int j,t;
        for(i=0; i<4; i++)
                for(j=0; j<3; j++)
                        if(a[j]>a[j+1])
                        {
                                t=a[j];
                                a[j]=a[j+1];
                                a[j+1]=t;
                        }
        for(i=0; i<4; i++)
                printf("%d ",a);
        printf("\n");
        system("pause");
        return 0;
}[/mw_shl_code]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表