为了账号安全,请及时绑定邮箱和手机立即绑定

终于写对了,欢迎借鉴

#include <stdio.h>

int main()

{

int year = 2008;

int month =8;

int day = 8;

int sum;

switch(month)

{

case 1:sum = 0;break;

case 2:sum = 31;break;

case 3:sum = 59;break;

case 4:sum = 90;break;

case 5:sum = 120;break;

case 6:sum = 151;break;

case 7:sum = 181;break;

case 8:sum = 212;break;

case 9:sum = 243;break;

case 10:sum = 273;break;

case 11:sum = 304;break;

case 12:sum = 334;break;

case 13:sum = 365;break;

default:

printf("%s\n","一年当中有12个月");

break; 

}

if(year%4==0 && year%100!=0)

{

sum += (day+1);

}

else

{

sum += day;

}

printf("%d年%d月%d日是该年的第%d天\n",year,month,day,sum);

return 0;

}


正在回答

3 回答

这样更方便看些:


#include <stdio.h>

int years_month_day(int years,int months);

int days;

int main() 

    /* 定义需要计算的日期 */

    int year = 2008;

    int month = 8;

    int day = 8;

    /*

     * 请使用switch语句,if...else语句完成本题

     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”

     * 小编还是希望大家独立完成哦~

     */

int i,j;

int year_month_day=0; //记录2008-8-8日所在该年的天数

for(i=1;i<month;i++) //8月前的天数(不包含8月)

{

years_month_day(year,i); //刷新days天数

year_month_day += days; //叠加月份天数

printf("%d月有%d天,现在叠加天数是%d天\n",i,days,year_month_day);

}

year_month_day += 8 ; //加上最后的8天

    printf("%d年%d月%d日是该年的第%d天\n",year,month,day,year_month_day);

    

return 0;

}

int years_month_day(int years,int months)

{

    //通过调用该函数来判断该月的天数

    switch(months)

    {

        //将两个特殊的月份提出来

        case 2:

            if( years%100==0 && years%400==0 || years%4==0 && years%100!=0) //判断是否是闰年,闰年2月29天,平年28

            {days=29;}

            else

            {days=28;}

break;

        case 8:

            days=31;

break;

        //判断其他月份天数,默认奇数为31天,偶数为30天

        default:

            if(months % 2 == 0) //该月份为偶数

            {days=30;}

            else

            {days=31;}

break;

    }

return 0;

}


0 回复 有任何疑惑可以回复我~

或者使用我的,能够判断年份来计算天数:

#include <stdio.h>int years_month_day(int years,int months);int days;int main() {     /* 定义需要计算的日期 */    int year = 2008;    int month = 8;    int day = 8;    /*     * 请使用switch语句,if...else语句完成本题     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”     * 小编还是希望大家独立完成哦~     */	int i,j;	int year_month_day=0;	//记录2008-8-8日所在该年的天数	for(i=1;i<month;i++)	//8月前的天数(不包含8月)	{		years_month_day(year,i);	//刷新days天数		year_month_day += days;		//叠加月份天数		printf("%d月有%d天,现在叠加天数是%d天\n",i,days,year_month_day);	}	year_month_day += 8 ;	//加上最后的8天	    printf("%d年%d月%d日是该年的第%d天\n",year,month,day,year_month_day);    	return 0;}int years_month_day(int years,int months){    //通过调用该函数来判断该月的天数    switch(months)    {        //将两个特殊的月份提出来        case 2:            if( years%100==0 && years%400==0 || years%4==0 && years%100!=0)	//判断是否是闰年,闰年2月29天,平年28            {days=29;}            else            {days=28;}			break;        case 8:            days=31;			break;        //判断其他月份天数,默认奇数为31天,偶数为30天        default:            if(months % 2 == 0) //该月份为偶数            {days=30;}            else            {days=31;}			break;    }	return 0;}


0 回复 有任何疑惑可以回复我~

#include <stdio.h>

int main() 

    int year = 2008;

    int month = 8;

    int day = 8;

    int i,j;

    if(year%100==0&&year%400==0||year%4==0&&year%100!=0)i=1;

    else i=0;

    switch(month)

    {

        case 1:j=day;break;

        case 2:j=31+ day;break;

        case 3:j=31+ 28+ day;break;

        case 4:j=31+ 28+ 31+ day;break;

        case 5:j=31+ 28+ 31+ 30+ day;break;

        case 6:j=31+ 28+ 31+ 30+ 31+ day;break;

        case 7:j=31+ 28+ 31+ 30+ 31+ 30+ day;break;

        case 8:j=31+ 28+ 31+ 30+ 31+ 30+ 31+day;break;

        case 9:j=31+ 28+ 31+ 30+ 31+ 30+ 31+ 31+ day;break;

        case 10:j=31+ 28+ 31+ 30+ 31+ 30+ 31+ 31+ 30+day;break;

我的也对了

        case 11:j=31+ 28+ 31+ 30+ 31+ 30+ 31+ 31+ 30+ 31+day;break;

        case 12:j=31+ 28+ 31+ 30+ 31+ 30+ 31+ 31+ 30+ 31+ 30+ day;break;

    }

    if(i==1)j+=1;

    printf("%d年%d月%d日是该年的第%d天",year,month,day,j);

    return 0;

}


3 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926020    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

终于写对了,欢迎借鉴

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信