4个回答
展开全部
程序如下,希望采纳
绝对正确
#include <stdio.h>
#include<stdlib.h>
int main()
{
int day, month, year, sum, leap;
printf("\nplease input year,month,day(用逗号隔开)\n");
scanf("%d,%d,%d", &year, &month, &day);
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;
default:
printf("data error");
break;
}
sum = sum + day; /* 再加上某天的天数 */
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) /* 判断是不是闰年 */
leap = 1;
else
leap = 0;
if (leap == 1 && month > 2) /* 如果是闰年且月份大于2,总天数应该加一天 */
sum++;
printf("It is the %dth day.", sum);
getchar();
}
我可花了些许时间的哦,如还有不懂得问就是了。祝你愉快!
包含
头文件包含stdio.h和stdlib.h
我给了注释的,应该较为清晰吧!
绝对正确
#include <stdio.h>
#include<stdlib.h>
int main()
{
int day, month, year, sum, leap;
printf("\nplease input year,month,day(用逗号隔开)\n");
scanf("%d,%d,%d", &year, &month, &day);
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;
default:
printf("data error");
break;
}
sum = sum + day; /* 再加上某天的天数 */
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) /* 判断是不是闰年 */
leap = 1;
else
leap = 0;
if (leap == 1 && month > 2) /* 如果是闰年且月份大于2,总天数应该加一天 */
sum++;
printf("It is the %dth day.", sum);
getchar();
}
我可花了些许时间的哦,如还有不懂得问就是了。祝你愉快!
包含
头文件包含stdio.h和stdlib.h
我给了注释的,应该较为清晰吧!
追问
问的是某月的天数,不是某年的第几天。
展开全部
#include<stdio.h>
bool leapyear(int y)//判断是否闰年
{
if(y%4==0&&y%100!=0)return 1;
if(y%400==0)return 1;
return 0;
}
int main()
{
int year,mon,day;
int daynum;
scanf("%d%d%d",&year,&mon,&day);
switch(mon){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(day>31||day<1)
printf("改天不存在");break;
daynum=31;break;
case 4:
case 6:
case 9:
case 11:
if(day>30||day<1)
printf("改天不存在");break;
daynum=30;break;
default:
if(leapyear(year)){
if(day>29||day<1)
printf("改天不存在");break;
daynum=29;break;}
else
if(day>28||day<1)
printf("改天不存在");break;
daynum=28;break;
}
printf("这个月有%d天",daynum);
return 0;
}
希望回答能帮到你,哪里不清楚再问。
若对你有用,望采纳!
bool leapyear(int y)//判断是否闰年
{
if(y%4==0&&y%100!=0)return 1;
if(y%400==0)return 1;
return 0;
}
int main()
{
int year,mon,day;
int daynum;
scanf("%d%d%d",&year,&mon,&day);
switch(mon){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(day>31||day<1)
printf("改天不存在");break;
daynum=31;break;
case 4:
case 6:
case 9:
case 11:
if(day>30||day<1)
printf("改天不存在");break;
daynum=30;break;
default:
if(leapyear(year)){
if(day>29||day<1)
printf("改天不存在");break;
daynum=29;break;}
else
if(day>28||day<1)
printf("改天不存在");break;
daynum=28;break;
}
printf("这个月有%d天",daynum);
return 0;
}
希望回答能帮到你,哪里不清楚再问。
若对你有用,望采纳!
更多追问追答
追问
bool型函数能改成其他类型吗?对bool型不太熟悉,能介绍一点吗?
追答
只要把bool改写成int,
完全一样的结果
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(y%4==0&&y%100!=0)return 1;
if(y%400==0)return 1;
return 0;
}
int main()
{
int year,mon
if(y%400==0)return 1;
return 0;
}
int main()
{
int year,mon
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果不存在你就输出“输入有误”不久行了吗
追问
怎么判断某年月日存不存在啊?
追答
if语句条件是在某个月天数要小于多少不就行了嘛
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询