题主的代码,算法有问题,修改如下,见注释,供参考:
#include <stdio.h>
int main()
{
int y,m,d,b=0,i;
int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d%d%d", &y, &m, &d);
if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) //如果该年是闰年
days[1] += 1; //将2月份天数加1,改为 29 天。
for (i = 0;i < m - 1; i++) //按月将天数累加
b += days[i];
b += d; //加上当月的天数
printf("%d", b); //输出某年某月某日是该年的第几天
return 0;
}
怎么不对,估计是第8行你键盘输入与第8行要求的格式不一样