C语言三天打鱼两天筛网的程序 求教 !找了好久没找出问题,大神看看是逻辑问题吗?万分感谢
歌者丶 2018-07-19 09:02:10 #include<stdio.h>
int year(int Ny);
int month(int Nm,int Ny1);
int main()
{
int Oyear = 2001;
int Nyear,Nmonth,Nday;
int Anum=0,numy,numm;
printf("input:\n");
scanf("%d %d %d",&Nyear,&Nmonth,&Nday);
if(Nyear >= 2001)
{
if(Nmonth >= 1 && Nmonth <= 12)
{
if(Nday >= 1 && Nday <= 31)
{
year(Nyear);
month(Nmonth,Nyear);
Anum=numy+numm+Nday;
printf("%d\n",Anum);
if(Anum%5 == 0 || Anum%5 == 4)
{
printf("这天它在晒网!\n");
}
else
{
printf("这天它在打鱼!\n");
}
}
else
{
printf("输入天数错误!\n");
}
}
else
{
printf("输入月份错误!\n");
}
}
else
{
printf("输入年份错误!\n");
}
return 0;
}
int year(int Ny)
{
int i,numy = 0;
for(i=2001;i<Ny;i++)
{
if((i%4 == 0 && i%100 != 0)||(i%400 == 0))
{
numy += 366;
}
else
{
numy += 365;
}
}
return (numy);
}
int month(int Nm,int Ny1)
{
int a[]={31,28,31,30,31,30,31,31,30,31,30,31};
int j,k,numm = 0;
if(Nm >= 1 && Nm <= 12)
{
for(j=0;j<Nm;j++)
{
numm += a[j];
}
}
for(k=2001;k<Ny1;k++)
{
if(((k%4 == 0 && k%100 != 0)||(k%400 == 0))&&(Nm > 2))
{
numm += 1;
}
}
return (numm);
}