| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
郁闷死了,总是WA,那位大虾能仗义相助?/////--- 1008. Maya Calender
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 10000
struct Haab /// 表示Haab日历的结构体类型
{
int day;
char month[8];
int year1;
} ;
struct Tzolkin /// 表示Tzolkin日历的结构体类型
{
int daynum;
char dayname[10];
int year2;
} /*Tzolkin*/;
Haab in[MAX];
Tzolkin out[MAX];
int main()
{
int n;
scanf("%d", &n);
printf("%d\n", n);
int i;
for(i=1; i<=n; i++) ////数组的0号空间不用
{
scanf("%d", &in[i].day);
getchar();
getchar();
scanf("%s", in[i].month);
getchar();
scanf("%d", &in[i].year1);
}
int absday[MAX];
for(i=1; i<=n; i++)
{
int monmark;
if( !strcmp(in[i].month, "pop") )
monmark = 1;
else if( !strcmp(in[i].month, "no") )
monmark = 2;
else if( !strcmp(in[i].month, "zip") )
monmark = 3;
else if( !strcmp(in[i].month, "zotz") )
monmark = 4;
else if( !strcmp(in[i].month, "tzec") )
monmark = 5;
else if( !strcmp(in[i].month, "xul") )
monmark = 6;
else if( !strcmp(in[i].month, "yoxkin") )
monmark = 7;
else if( !strcmp(in[i].month, "mol") )
monmark = 8;
else if( !strcmp(in[i].month, "chen") )
monmark = 9;
else if( !strcmp(in[i].month, "yax") )
monmark = 10;
else if( !strcmp(in[i].month, "zac") )
monmark = 11;
else if( !strcmp(in[i].month, "ceh") )
monmark = 12;
else if( !strcmp(in[i].month, "mac") )
monmark = 13;
else if( !strcmp(in[i].month, "kankin") )
monmark = 14;
else if( !strcmp(in[i].month, "muan") )
monmark = 15;
else if( !strcmp(in[i].month, "pax") )
monmark = 16;
else if( !strcmp(in[i].month, "koyab") )
monmark = 17;
else if( !strcmp(in[i].month, "cumhu") )
monmark = 18;
else if( !strcmp(in[i].month, "uayet") )
monmark = 19;
else exit(1);
absday[i] = in[i].year1 * 365 + (monmark - 1) * 20 + (in[i].day + 1);
}///--- for循环, 算出所有的absday.
for(i=1; i<=n; i++)
{
out[i].year2 = (absday[i]-1) / 260;
int day_in_year;
day_in_year = absday[i] % 260;
if(absday[i] % 260 == 0)
day_in_year = 260;
int quot1;
quot1 = day_in_year / 13;
out[i].daynum = day_in_year - quot1 * 13;
int quot2, daymark;
quot2 = day_in_year /20;
daymark = day_in_year - (quot2 * 20);
if(daymark == 1)
strcpy(out[i].dayname, "imix");
else if(daymark == 2)
strcpy(out[i].dayname, "ik");
else if(daymark == 3)
strcpy(out[i].dayname, "akbal");
else if(daymark == 4)
strcpy(out[i].dayname, "kan");
else if(daymark == 5)
strcpy(out[i].dayname, "chicchan");
else if(daymark == 6)
strcpy(out[i].dayname, "cimi");
else if(daymark == 7)
strcpy(out[i].dayname, "manik");
else if(daymark == 8)
strcpy(out[i].dayname, "lamat");
else if(daymark == 9)
strcpy(out[i].dayname, "muluk");
else if(daymark == 10)
strcpy(out[i].dayname, "ok");
else if(daymark == 11)
strcpy(out[i].dayname, "chuen");
else if(daymark == 12)
strcpy(out[i].dayname, "eb");
else if(daymark == 13)
strcpy(out[i].dayname, "ben");
else if(daymark == 14)
strcpy(out[i].dayname, "ix");
else if(daymark == 15)
strcpy(out[i].dayname, "mem");
else if(daymark == 16)
strcpy(out[i].dayname, "cib");
else if(daymark == 17)
strcpy(out[i].dayname, "caban");
else if(daymark == 18)
strcpy(out[i].dayname, "eznab");
else if(daymark == 19)
strcpy(out[i].dayname, "canac");
else if(daymark == 20)
strcpy(out[i].dayname, "ahau");
}////--- for循环,计算输出值
for(i=1; i<=n; i++)
printf("%d %s %d\n", out[i].daynum, out[i].dayname, out[i].year2);
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator