请问,我的代码哪里错了?

实现功能:请使用switch语句和if...else语句,计算2008年8月8日这一天,是该年中的第几天。

#include <stdio.h>
int main() 
{ 
    /* 定义需要计算的日期 */
    int year = 2008;
    int month = 8;
    int day = 8;
    
    int sum,flag;
    switch(month)
    {
		case 1:sum=0;break;
		case 2:sum=31;break;
		case 3:sum=31+28;break;
		case 4:sum=31+28+31;break;
		case 5:sum=31+28+31+30;break;
		case 6:sum=31+28+31+30+31;break;
		case 7:sum=31+28+31+30+31+30;break;
		case 8:sum=31+28+31+30+31+30+31;break;
		case 9:sum=31+28+31+30+31+30+31+31;break;
		case 10:sum=31+28+31+30+31+30+31+31+30;break;
		case 11:sum=31+28+31+30+31+30+31+31+30+31;break;
		case 12:sum=31+28+31+30+31+30+31+31+30+31+30;break;
		default:printf("%s\n","一年只有12个月哦!!!");break;
	}

		if((year%100==0&&year%100==0)||year%400==0)
		{flag=1;}
		else
		{flag=0;}
		if(flag=1&&month>2)
		sum++;
		printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
	
	return 0;
}

正确答案是:2008年8月8日是改年的第221天

但是,上面的代码得到的答案是:2008年8月8日是改年的第213天

是哪里错了?

http://img.mukewang.com/55c169f10001398713660746.jpg

沐竹雨
浏览 1473回答 2
2回答

王醒醒ok

你没有算8月份的这8天,就是sum的值要加上day

qq_无名氏_6

你没有算8月份的这8天,就是sum的值要加上day
打开App,查看更多内容
随时随地看视频慕课网APP