#include <stdio.h>
int main(int argc, char *argv[])
{
int a,b,c,d[12][31],e=1,f,g,i,j;
scanf ("%d %d %d",&a,&b,&c);
for (i=0;i<12;i++)
{
for (j=0;j<31;j++,)
{
d[i][j]=e;
if (i==1&&j==29) break;
else if (i==3|5|8|10&&j==30) break;
e++;
}
}
f=b-1,g=c-1;
printf ("%d",d[f][g]);
return 0;
}
改了后一年371天了。。。。。。。。。。。而且我那个原版的2月1日计数是31,1月31计数也是31,不懂怎么错了,你这个改了后这个问题没了
追答改成这个呢
for (j=0;j<31;j++,)
{
if (i==1&&j==29) break;
else if (i==3|5|8|10&&j==30) break;
d[i][j]=e++; //这个地方要先加再break的,不然就有5次没加上,正好差5天
}
还是不行。。。。难道是思路错了么
追答#include
int main(int argc, char *argv[])
{
int a,b,c,d[12][31],e=1,f,g,i,j;
scanf ("%d %d %d",&a,&b,&c);
for (i=0;i<12;i++)
{
for (j=0;j<31;j++)
{
if (i==1&&j==29) break;
else if ((i==3||i==5||i==8||i==10)&&j==30) break; //这个地方错了
d[i][j]=e;
e++;
}
}
f=b-1,g=c-1;
printf ("%d",d[f][g]);
return 0;
}