公元前和公元纪年转换成天干地支纪年
先确定一年是什么年在用循环做也行,用取余操作可以很好地避免循环
例如1911年是辛亥年。
此处用的是公式
1 # include <stdio.h> 2 # include <string.h> 3 # include <math.h> 4 char a[10][10] = {"Jia", "Yi", "Bing", "Ding", "Wu", "Ji", "Geng", "Xin", "Ren", "Gui"}; 5 char b[12][10] = {"zi", "chou", "yin", "mao", "chen", "si", "wu", "wei", "shen", "you", "xu", "hai"}; 6 int main() 7 { 8 int i,n,year,x,y; 9 while(scanf("%d",&n)!=EOF) 10 { 11 12 13 while(n--) 14 { 15 scanf("%d",&year); 16 if(year>0) 17 { 18 x=(year-3+10)%10; 19 if(x==0) 20 x=10; 21 y=(year-3+12)%12; 22 if(y==0) 23 y=12; 24 printf("%s%s\n",a[x-1],b[y-1]); 25 } 26 else if(year < 0) 27 { 28 year=-year; 29 int r=year%10; 30 x=8-r; 31 if(x<0) 32 x=10+x; 33 if(x==0) 34 x=10; 35 y=year%12; 36 y=10-y; 37 if(y<0) 38 y=y+12; 39 else if(y==0) 40 y=12; 41 printf("%s%s\n",a[x-1],b[y-1]); 42 } 43 else 44 { 45 printf("Gengshen\n"); 46 } 47 } 48 } 49 return 0; 50 }
 
                    
                 
                
            
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号