这次做了poj的1008,大体就是将一种历法转换成另一种历法,题目就不再赘述了。
这段代码用DEV编译没有问题,但是提交G++时总显示Runtime Error!希望有看出问题的前辈们,多多指教!
源代码:
#include <iostream>
#include <string>
using namespace std;
int computeHaab(string moon,int Hyear,int Hday);
void transfer(int num);
int main() {
int Hyear,Hday;
string moon;
int totaldays[10],num,i;
char ch1,ch2;
cin>>num;
for(i=0;i<num;i++){
cin>>Hday;
ch1=cin.get();
ch2=cin.get();
//cin>>ch1;
getline(cin,moon,' ');
cin>>Hyear;
totaldays[i]=computeHaab(moon,Hyear,Hday);
}
cout<<num<<endl;
for(i=0;i<num;i++){
transfer(totaldays[i]);
}
return 0;
}
int computeHaab(string moon,int Hyear,int Hday){
int num=0,i,j;
string Hmoon[19]={"pop", "no", "zip","zotz", "tzec", "xul", "yoxkin",
"mol", "chen", "yax", "zac", "ceh", "mac", "kankin", "muan", "pax", "koyab", "cumhu","uayet"};
if(Hyear>0){
num+=(Hyear)*365;
}
for(i=0;i<19;i++){
if(moon==Hmoon[i]){
break;
}
}
num+=(i*20+Hday+1);
return num;
}
void transfer(int num){
int Tyear;
string Tname;
int Tday;
string name[20]={"imix", "ik", "akbal", "kan", "chicchan",
"cimi", "manik", "lamat", "muluk", "ok", "chuen", "eb",
"ben", "ix", "mem", "cib", "caban", "eznab", "canac", "ahau" };
Tyear=num/260;
int i=(num+19)%20;
int j=(num+12)%13+1;
Tname=name[i];
Tday=j;
cout<<Tday<<" "<<Tname<<" "<<Tyear<<endl;
}
这段代码用DEV编译没有问题,但是提交G++时总显示Runtime Error!希望有看出问题的前辈们,多多指教!