回 帖 发 新 帖 刷新版面

主题:编译出现两处警告,是什么原因!

下面是一个计算输进去的日期是当前第几天的,可是编译时,出现警告,
说是,d和f可能没有定义,可是我明明已经定义过了,不知道为什么会出现这种情况,
谢谢大家指点下,另外这个程序是不是还有别的什么问题呀。
#include<stdio.h>
main()
{
int monthday[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,30,31,30,31,30,31,31,30,31,30,31}};
int year,month,day,i,j,f;
printf("please enter a data!\n");
scanf("%d%d%d",&year,&month,&day);
{if (leapyear(year)==0)
 {for (i=0;i<month-1;i++) f=f+monthday[0][i];f=f+day;}
else
  {for (i=0;i<month-1;i++) f=f+monthday[1][i];f=f+day;}
}
printf("The day is the %d th day",f);
}





int leapyear(int year)
{
if((year)%4==0&&(year)%100!=0||(year)%400==0)
 return(0);
}

回复列表 (共1个回复)

沙发

本人愚见
#include<stdio.h>
main()
{
int monthday[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,30,31,30,31,30,31,31,30,31,30,31}};
int year,month,day,i,f=0;
printf("please enter a data!\n");
scanf("%d%d%d",&year,&month,&day);
{if (leapyear(year)==0)
 {for (i=1;i<month-1;i++){ f=f+monthday[0][i];}f=f+day;}

else
  {for (i=1;i<month-1;i++){ f=f+monthday[1][i];}f=f+day;}
}
printf("The day is the %d th day",f);
}





int leapyear(int year)
{int i;
if(year<4&&year>0)
return(1);
else
i=year%4;
return(i);

}

我来回复

您尚未登录,请登录后再回复。点此登录或注册