|
WA 了很多次...有几个小细节需要处理就是读入数据 控制精度 判断闰年 还有最重要的是理解清楚题意。。。
1 #include<stdio.h> 2 #define SIZE 400 3![](http://www.cppblog.com/Images/OutliningIndicators/None.gif) 4 int flag , flag2; 5 char s1[SIZE],s5[SIZE],s3[SIZE]; 6 int s4,s2,s6; 7![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif) char month[12][5]= {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"}; 8![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif) int dat[12]= {31,28,31,30,31,30,31,31,30,31,30,31}; 9 int date; 10![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif) struct Q { 11 int qn; 12 int qy; 13 int qr; 14 15 int en; 16 int ey; 17 int er; 18 19 int way; 20 int num; 21 }; 22 Q a; 23![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif) int shu() { 24 int nn = 0; 25![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) while(1) { 26 if( a.qn == a.en && a.er ==a.qr && a.ey == a.qy) break; 27 if(nn>31) break; 28 if(flag == 1) dat[1] = 29; 29 else 30 dat[1] = 28; 31 32 a.qr++; 33 if(a.qr>dat[a.qy-1]) 34![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 35 a.qr = a.qr - dat[a.qy-1]; 36 a.qy++; 37![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) if(a.qy>12) { 38 a.qy = a.qy -12; 39 a.qn++; 40![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) if(flag2 ==1 ) { 41 flag = 1; 42 } 43 } 44 } 45 nn++; 46 } 47 return nn ; 48 } 49![](http://www.cppblog.com/Images/OutliningIndicators/None.gif) 50![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif) int main() { 51 int key ; 52 int i ; 53![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) while(1) { 54 key = 0 ; 55 int num =0; 56 57 scanf("%s %d %s %d %s ",s1,&s2,s3,&s4,s5); 58![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) if(s5[0] == 'a') { 59![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) while(1) { 60 char temp; 61 scanf("%c",&temp); 62 if(temp == '<') 63 num++; 64 if(temp == '>') 65 num--; 66 if(num == 0) break; 67 } 68 } 69 scanf("%d",&s6); 70 //printf("%s %d %s %d %s %d\n",s1,s2,s3,s4,s5,s6); 71 if(s6 == 0) break; 72 a.en = s4; 73 a.qn = s2; 74 a.num = s6; 75 for(i = 0 ; i <12 ;i++ ) 76![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) if(s1[0] == month[i][0] && s1[1] == month[i][1] && s1[2] ==month[i][2] ) { 77 a.qy = i+1; 78 break; 79 } 80 a.qr = 10*(s1[4]-'0')+(s1[5]-'0'); 81 for(i = 0 ; i <12 ;i++ ) 82![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) if(s3[0] == month[i][0] && s3[1] == month[i][1] && s3[2] ==month[i][2] ) { 83 a.ey = i+1; 84 break; 85 } 86 a.er = 10*(s3[4]-'0')+(s3[5]-'0'); 87 88 int m = 100 ; 89 90![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) switch(s5[0]) { 91 case 'p':a.way = 1 ;m = 90*m; break; 92 case 'o':a.way = 2 ;m = 85*m; break; 93 case 'a':a.way = 3 ;m = 80*m; break; 94 } 95![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) if(a.num>=20) { 96 m = 80*m; 97 } 98 else 99![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) if(a.num>=5 && a.num<=19) { 100 m = 90*m; 101 } 102 else 103 m = m*100; 104 105 date = 0; 106 flag = 0; 107![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) if(a.qn%400 == 0) { 108 flag = 1; 109 } 110![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) else { 111![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) if(a.qn%4 == 0 && a.qn%100!=0) { 112 flag = 1; 113 } 114 } 115 flag2 = 0; 116![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) if(a.en%400 == 0) { 117 flag2 = 1; 118 } 119![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) else { 120![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) if(a.en%4 == 0 && a.en%100!=0) { 121 flag2 = 1; 122 } 123 } 124 date = shu(); 125 if(date>=30) m = m*60; 126 else 127 if(date>=15) m = m*70; 128 else 129 if(date>=7) m = m*90; 130 else 131 m = m*100; 132 133 char ss[SIZE]; 134 135 sprintf(ss,"%d\n",m); 136 137 printf("%c%c",ss[0],ss[1]); 138![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) if(ss[2]=='0'&&ss[3] == '0') {printf("\n");continue;} 139 else 140 printf("."); 141 142 printf("%c",ss[2]); 143![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) if(ss[3]=='0') {printf("\n");continue;} 144 else 145![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) { 146 printf("%c\n",ss[3]); 147 } 148 149 } 150![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif) 151 return 0 ; 152 } 153![](http://www.cppblog.com/Images/OutliningIndicators/None.gif) 154![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
|