C语言的一道题:从键盘上输入年、月、日,给出这个月的天数,用switch语句编程。

假如输入的某年某月的某天不存在,该如何写程序?... 假如输入的某年某月的某天不存在,该如何写程序? 展开
 我来答
逐梦兮乐
2013-06-08 · TA获得超过6431个赞
知道大有可为答主
回答量:5151
采纳率:72%
帮助的人:1810万
展开全部
程序如下,希望采纳
绝对正确
#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
我给了注释的,应该较为清晰吧!
追问
问的是某月的天数,不是某年的第几天。
百度网友cd3d6c4
2013-06-08 · TA获得超过315个赞
知道小有建树答主
回答量:262
采纳率:0%
帮助的人:275万
展开全部
#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型函数能改成其他类型吗?对bool型不太熟悉,能介绍一点吗?
追答
只要把bool改写成int,
完全一样的结果
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
675346631
2013-06-08 · 超过19用户采纳过TA的回答
知道答主
回答量:144
采纳率:0%
帮助的人:67.7万
展开全部
if(y%4==0&&y%100!=0)return 1;
if(y%400==0)return 1;
return 0;
}
int main()
{
int year,mon
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杨星光05
2013-06-08 · 超过11用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:30.5万
展开全部
如果不存在你就输出“输入有误”不久行了吗
追问
怎么判断某年月日存不存在啊?
追答
if语句条件是在某个月天数要小于多少不就行了嘛
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式