POJ 1008 Maya Calendar

本文展示了一个基于C语言实现的玛雅历法日期转换程序。该程序通过输入玛雅历法的特定日期(包括月份和年份),计算并输出对应的玛雅神圣历法(Tzolkin)日期。程序使用了两个字符数组来存储玛雅历法中的19个月份名称和20个神圣历法日子名称。

  
#include < stdio.h >
#include
< string .h >
char haabMonth[ 19 ][ 10 ] = { " pop " , " no " , " zip " , " zotz " , " tzec " , " xul " , " yoxkin " , " mol " , " chen " , " yax " , " zac " , " ceh " , " mac " , " kankin " , " muan " , " pax " , " koyab " , " cumhu " , " uayet " };
char hollyDay[ 20 ][ 10 ] = { " imix " , " ik " , " akbal " , " kan " , " chicchan " , " cimi " , " manik " , " lamat " , " muluk " , " ok " , " chuen " , " eb " , " ben " , " ix " , " mem " , " cib " , " caban " , " eznab " , " canac " , " ahau " };
void work( int haabd, char * haabm, int year){
int i, days; // days haab历 天数
for (i = 0 ; strcmp(haabm,haabMonth[i]); ++ i); // 在habb历中找月份
days = i * 20 + haabd;
days
+= year * 365 ;
printf(
" %d %s %d\n " , 1 + days % 13 , hollyDay[days % 20 ], days / 260 ); // 这题英文实在晕,还是看解题报告才知道mod13 就可以了 好好学英语啊!!
return ;
}
int main(){
int number;
scanf(
" %d " , & number);
printf(
" %d\n " ,number);
for ( int i = 0 ; i < number; ++ i){
int haabd, year;
char haabm[ 10 ];
scanf(
" %d.%s%d " , & haabd, haabm, & year);
work(haabd, haabm, year);
}
return 0 ;
}

转载于:https://www.cnblogs.com/lxf90/archive/2011/04/10/2011077.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值