输入一个年份和月份,打印出该月份有多少天(考虑闰年),用switch语句编程

如题所述

#include < <stdio.h>

main(

{

int year, month;

printf("Input year,month: ");

scanf("%d, %d", &year, &month);/*输入相应的年和月*/

switch (month)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

printf("31 days\n");

break; .

case 2:

if(vyear % 4== 0 && year % 100 != O)l(year % 400 == 0))

printf("29 days\n"); /*闰年的2月有 29天*/

}

else

{

printf("28 days\n");/*平年的2月有28天*/

break;

case 4:

case 6:

case 9:

case 11:

printf("30 daysln");

break;

default:

printf("Input error!\n");

}

}

扩展资料

switch语句用法注意事项:

switch 语句可以更方便地应用于多个分支的控制流程。C89 指明,一个 switch 语句最少可以支持 257 个 case 语句,而 C99 则要求至少支持 1023 个 case 语句。然而,在实际开发环境中,为了程序的可读性与执行效率,应该尽量减少 switch 语句中的 case 语句。

除此之外,switch 语句与 if 语句不同的是,switch 语句只能够测试是否相等,因此,case 语句后面只能是整型或字符型的常量或常量表达式;而在 if 语句中还能够测试关系与逻辑表达式。

不要忘记在 case 语句的结尾添加 break 语句。在 switch 语句中,每个 case 语句的结尾不要忘记添加 break 语句,否则将导致多个分支重叠。当然,除非有意使多个分支重叠,这样可以免去 break 语句。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-21
你试试看,程序如下:
#include<stdio.h>
void main()
{int year,month,day;
printf(" 请输入一个年份和月份:\n");
scanf("%d,%d",&year,&month);
switch(month)
{
case 1: day=31;break;
case 2: day=28;break;
case 3: day=31;break;
case 4: day=30;break;
case 5: day=31;break;
case 6: day=30;break;
case 7: day=31;break;
case 8: day=31;break;
case 9: day=30;break;
case 10: day=31;break;
case 11: day=30;break;
case 12: day=31;break;
}
if((year%4==0&&year%100!=0||year%400==0)&&month==2) day=29;
printf("该月份有%d天\n",day);
}本回答被提问者采纳
第2个回答  2011-12-22
#include<stdio.h>
void main()
{int year,month,day;
printf(" 请输入一个年份和月份:\n");
scanf("%d,%d",&year,&month);
switch(month)
{
case 1: day=31;break;
case 2:
if(year%100=0&&year%400=0)||(year%4=0)
day=28;
else
day=27;
break;
case 3: day=31;break;
case 4: day=30;break;
case 5: day=31;break;
case 6: day=30;break;
case 7: day=31;break;
case 8: day=31;break;
case 9: day=30;break;
case 10: day=31;break;
case 11: day=30;break;
case 12: day=31;break;
}
if((year%4==0&&year%100!=0||year%400==0)&&month==2) day=29;
printf("该月份有%d天\n",day);
}
第3个回答  2011-11-14
int chkYear(int year)
{
if(year%100==0)
return year%400;
else
return year%4;
}
int main()
{
int year,month;
scanf("%d,%d",&year,&month);
if(chkYear(year))
printf("%d不是闰年\n",year);
else
printf("%d是闰年\n",year);
switch(month)
{
case 1:printf("this month has 31 days\n");break;
case 2:if(chkYear(year))
printf("this month has 28 days\n");
else
printf("this month has 29 days\n");
break;
case 3:printf("this month has 31 days\n");break;
case 4:printf("this month has 30 days\n");break;
case 5:printf("this month has 31 days\n");break;
case 6:printf("this month has 30 days\n");break;
case 7:printf("this month has 31 days\n");break;
case 8:printf("this month has 31 days\n");break;
case 9:printf("this month has 30 days\n");break;
case 10:printf("this month has 31 days\n");break;
case 11:printf("this month has 30 days\n");break;
case 12:printf("this month has 31 days\n");break;
default:printf("program finished\n");
}
}
第4个回答  2017-11-19
#include <stdio.h>
int main()
{
int year1,year2,m,i;
int n=0;
printf("Input your birth year:");
scanf("%d",&year1);
printf("Input this year:");
scanf("%d",&year2);
for(i>=year1;i<=year2;i++)
if(i%4==0&&i>=year1&&i<=year2)
printf("%d\n",i);
for(m=year1;m<=year2;m++)
if(((m%4==0)&&(m%100!=0))||m%4==0)
n++;
printf("count=%d\n", n);
return 0;
}

输入一个年份和月份,打印出该月份有多少天(考虑闰年),用switch语句编程...
switch (month){ case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf("31 days\\n");break; .case 2:if(vyear % 4== 0 && year % 100 != O)l(year % 400 == 0))printf("29 days\\n"); \/*闰年的2月有 29天*\/ } else { printf("28 days\\n");\/*平年的2月...

C语言编程 从键盘输入一个年份和月份,输出该月有多少天(考虑闰年)
用switch选择的:#include<stdio.h>int main(){int y,m;printf("请依次输入年,月:\\n"); scanf("%d,%d",&y,&m); \/\/上机时注意打逗号,也可修改为其他格式switch(m){case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf("这个月有31天\\n");break;case 2 : if(y%4=...

C语言编程从键盘输入一个年份和月份,输出该月有多少天(考虑闰年)
4. 如果是闰年,且月份为2月,则输出该月有29天;否则,对于1月、3月、5月、7月、8月、10月和12月,输出该月有31天;对于4月、6月、9月和11月,输出该月有30天。5. 如果输入的月份大于12,程序将输出错误信息,提示用户输入有误。6. 程序使用switch语句来处理月份的天数,这是另一种多分...

用java编写:输入任意年份和月份,输出对应月份的天数。
用 java编写:输入任意年份和月份,输出对应月份的天数,首先判断输入年份是否是闰年,然后使用switch 方法判断月份,判断代码如下:public class GetDays { public static int getDays(int year, int month) {int days = 0;boolean isLeapYear = false;if (((year % 4 == 0) && (year % 100 !...

c++问题:输入年月,输出该月有多少天(用switch实现)如:输入:2000.3输出...
cout<<"输入年份和月份:";cin>>year>>month;leap_year=(year%4==0) || (year%400==0 && year%100!=0);\/\/判断是不是闰年 switch(leap_year){ case 1:cout<<"有"<<Y[leap_year][month-1]<<"天"<<endl;break;case 0:cout<<"有"<<Y[leap_year][month-1]<<"天"<<endl;br...

输入年月日,计算该日期是该年第几天(注意平年闰年)c语言编程怎么编?
=0))||(year%400==0)) { case 1: { switch (month) { case 1: time=day;break; case 2: time=31+day;break; case 3: time=31+29+day;break; case 4: time=31*2+29+day;break; case 5: time=31*2+29+30+day;break; case 6: time=31*...

急求C++程序小问题,输入年份和月份,输出该月的天数。
【解题思路】本题的难点主要就是判断是否闰年和大小月份,判断闰年的标准是能被4整除且不能被100整除的年份,或者能被400整除的年份是闰年。至于大小月,则可以通过一个switch……case语句来实现。具体代码如下:【程序代码】#include <iostream> \/\/控制台操作头文件int main() \/\/主函数 {int ...

编写程序计算某年某月的天数.输入年份year和月份month,输出该月份的...
int a=0;printf("输入任意符合范围(1月~12月)的月份和(1900年~9999年)年份,且两个值之间空格分隔。\\n");scanf("%d %d",&year,&month);if(year%4==0&&year%100!=0||year%400==0)a=1;\/\/结果为1代表闰年 switch(month){ case 1:case 3:case 5:case 7:case 8:case 10:case...

C语言-判断闰年 要用switch语句 请教高人
intyear,month,ex;printf("请输入年份及月份(空格分隔):");scanf("%d%d",&year,&month);if(month<1||month>12){ printf("输入有误!!");}else{ if((year%4==0&&year%100!=0)||year%400==0){ ex=1;printf("%d年为闰年。\\n",year);}else{ ex=0;printf("%d年不为闰年。\\...

怎么用 swith,default 来写C++ 输入年份和月份 而得出这个月有几天...
int year,month;cin>>year>>month;if("判断是否是闰年")swith(month){ case 1:\/*输出31天*\/;break;case 2: if(是闰年)输出29天else输出28天;break;依次类推到12月。} 算法大概是这么个样子。完整程序我没时间敲,自己动动手吧。

相似回答