日期排序計算

來源:互聯網
上載者:User
文章目錄
  • Description:
                                                                       

日期排序計算
Time Limit:1000MS  Memory Limit:32768K

Description:給定一些日期,對它們進行排序並且輸出這個日期是該年的第幾天。線上地址:http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1296提交錯誤,但是不知道錯在那,望各位指點指點

 

 

#include "stdio.h"#include "stdlib.h"typedef struct{int dd;int mm;int yy;int Sumday;}Data;int day[2][13]={0,31,29,31,30,31,30,31,31,30,31,30,31,//每個月的天數0,31,28,31,30,31,30,31,31,30,31,30,31};int Leap(Data d)//判斷是否為閏年{return ((d.yy%4==0 && d.yy%100!=0 )||d.yy%400==0);}void Count_days(Data *d,int n,int bol)//統計天數,如果是閏年bol為0,否則為1{int i,j;for(i=0;i<n;i++){d[i].Sumday=d[i].dd;for(j=1;j<d[i].mm;j++)d[i].Sumday+=day[bol][j];}}int cmp(const void *a,const void *b)//快速排序使用函數,安年、月、日{Data *d1,*d2;d1=(Data *)a; d2=(Data *)b;if(d1->yy!=d2->yy) return d1->yy-d1->yy;if(d1->mm!=d2->mm) return d1->mm-d2->mm;if(d1->dd!=d2->dd) return d1->dd-d2->dd;return 0;}void main(){int n;while(scanf("%d",&n)!=EOF && n){Data *d1=(Data *)malloc(sizeof(Data)*(n+2));//儲存閏年的日期Data *d2=(Data *)malloc(sizeof(Data)*(n+2));//儲存非閏年的日期Data d3;//中間變數int i,j,k;j=k=0;for(i=0;i<n;i++){scanf("%d%*c%d%*c%d",&d3.dd,&d3.mm,&d3.yy);if(Leap(d3)) d1[j++]=d3;//統計閏年的個數else d2[k++]=d3;//統計非閏年個數}Count_days(d1,j,0);Count_days(d2,k,1);qsort(d1,j,sizeof(d1[0]),cmp);qsort(d2,k,sizeof(d2[0]),cmp);if(j>0){for(i=0;i<j;i++)printf("%02d\\%02d\\%04d %d\n",d1[i].dd,d1[i].mm,d1[i].yy,d1[i].Sumday);printf("\n");}for(i=0;i<k;i++)printf("%02d/%02d/%04d %d\n",d2[i].dd,d2[i].mm,d2[i].yy,d2[i].Sumday);printf("\n");}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.