把 uayet 这一个月没加上,调了一晚上就不知道什么问题…… 题意 : 定义了两种记年法,在两种记年法转换 分析 : 一种记年法化为多少天,然后天数化为另一种记年法。 代码 : #include <iostream> using namespace std; int ha_day,ha_year; int dayafter; char ha_month[25]; char ha_month_list[20][25]={" ","pop", "no","zip", "zotz", "tzec", "xul", "yoxkin", "mol", "chen", "yax", "zac", "ceh", "mac", "kankin", "muan", "pax", "koyab", "cumhu","uayet" }; int tzo_day; char tzo_month[25]; char tzo_month_list[21][25]={" ","imix", "ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "muluk", "ok", "chuen", "eb", "ben", "ix", "mem", "cib", "caban", "eznab", "canac", "ahau" }; int tzo_year; int cal_ha(); void changeto_tzo(); int main() { int cases; cin>>cases; cout<<cases<<endl; while (cases--) { scanf("%d. ", &ha_day); scanf("%s", ha_month); scanf("%d", &ha_year); int day=0; day+=ha_year*365; int i; for (i=1;;++i) { if ( strcmp(ha_month,ha_month_list[i])==0) break; } i--; day+=i*20; day+=ha_day; day++; dayafter=day; tzo_year=(dayafter-1)/260; int lastday=dayafter-tzo_year*260; int num=lastday%13; if (num==0) { num=13; } int month=lastday%20; if (month==0) { month=20; } printf("%d %s %d/n",num,tzo_month_list[month],tzo_year); } }