#include<stdio.h>
#define i 11
int main()
{
int y;
int d[i]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入年份:");
scanf("%d",&y);
if(y/4==0)
{
d[1]=29;
}
else
{
d[1]=28;
}
for(i=0;i<=11;i++)
{
printf("%d月份:%d天\n",i+1,d[i]);
}
return 0;
}
修改处见注释,供参考:
#include<stdio.h>
#define i 12 //11 修改
int main()
{
int y, j; // 修改
int d[i] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
printf("请输入年份:");
scanf("%d", &y);
if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))//if (y / 4 == 0)
{
d[1] = 29;
}
//else
//{
// d[1] = 28;
//}
for (j = 0; j < 12; j++)//for (i = 0; i <= 11; i++)
{
printf("%d月份:%d天\n", j + 1, d[j]);// i + 1, d[i]
}
return 0;
}
问题主要出在闰年的判断上,要不被100整除而被四整除的和被四百整除的才是闰年