| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7940 人关注过本帖
标题:有一些日期,日期格式为“MM/DD/YYYY”。编程将其按日期大小排列
只看楼主 加入收藏
caifangxu123
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-4-13
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
有一些日期,日期格式为“MM/DD/YYYY”。编程将其按日期大小排列
#include<stdio.h>

int main()
{
    int d[6] , m[6] , y[6] ,a , b ,c ;
    for(int i=0;i<6;i++)
    {
        scanf("%d/%d/%d",&d[i],&m[i],&y[i]);
    }
    for(int j=0;j<6;j++)
    {
        for(int k=5;k>=j;k--)
        {
            if(y[k]<y[k-1])
            {
                a=y[k-1];
                y[k-1]=y[k];
                y[k]=a;
                b=m[k-1];
                m[k-1]=m[k];
                m[k]=b;
                c=d[k-1];
                d[k-1]=d[k];
                d[k]=c;
                continue;
            }
            else if(y[k]==y[k-1])
            {
                if(m[k]<m[k-1])
                {
                    a=y[k-1];
                    y[k-1]=y[k];
                    y[k]=a;
                    b=m[k-1];
                    m[k-1]=m[k];
                    m[k]=b;
                    c=d[k-1];
                    d[k-1]=d[k];
                    d[k]=c;
                    continue;
                }
                else if(m[k]==m[k-1])
                {
                    if(d[k]<d[k-1])
                        {
                            a=y[k-1];
                            y[k-1]=y[k];
                            y[k]=a;
                            b=m[k-1];
                            m[k-1]=m[k];
                            m[k]=b;
                            c=d[k-1];
                            d[k-1]=d[k];
                            d[k]=c;
                            continue;
                        }
                    else
                        continue;
                }
                else
                    continue;
            }
            else
                continue;
        }
    }
    for(int i=0;i<6;i++)
    {
        printf("%02d/%02d/%02d\n",d[i],m[i],y[i]);
    }
    return 0;
}  这个我朋友写的代码 但是我想变得简单点 求大神指教!!!!!!!!!
搜索更多相关主题的帖子: include 
2017-04-13 22:18
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:7 
#include<stdio.h>

int main()
{
    int d[6] , m[6] , y[6] ,a , b ,c ;
    for(int i=0;i<6;i++)
    {
        scanf("%d/%d/%d",&d[i],&m[i],&y[i]);
    }
    for(int j=0;j<6;j++)
    {
        for(int k=5;k>=j;k--)
        {
            if((y[k]*100+m[k])*100+d[k]<(y[k-1]*100+m[k-1])*100+d[k-1])
            {
                a=y[k-1];
                y[k-1]=y[k];
                y[k]=a;
                b=m[k-1];
                m[k-1]=m[k];
                m[k]=b;
                c=d[k-1];
                d[k-1]=d[k];
                d[k]=c;
            }
        }
    }
    for(int i=0;i<6;i++)
    {
        printf("%02d/%02d/%02d\n",d[i],m[i],y[i]);
    }
    return 0;
}
2017-04-13 22:31
caifangxu123
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-4-13
收藏
得分:0 
回复 2楼 xzlxzlxzl
if((y[k]*100+m[k])*100+d[k]<(y[k-1]*100+m[k-1])*100+d[k-1]) 这个是什么意思 可以 解释一下吗 ?
2017-04-13 23:17
lmlm1001
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:4
帖 子:107
专家分:550
注 册:2015-3-1
收藏
得分:7 
声明一个int数组dayvalue
scanf时,把对应的日期数据 年x10000+月x100+日
然后对int数组dayvalue排序,再输出。
2017-04-13 23:51
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:7 
为什么不直接用标准函数 qsort
2017-04-14 08:46
caifangxu123
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-4-13
收藏
得分:0 
回复 5楼 rjsp
毕竟还没学
2017-04-14 16:56
快速回复:有一些日期,日期格式为“MM/DD/YYYY”。编程将其按日期大小排列
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057013 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved