C语言编程 从键盘输入一个年份和月份,输出该月有多少天(考虑闰年)

 我来答
大沈他次苹0B
2018-10-05 · TA获得超过7325个赞
知道大有可为答主
回答量:3059
采纳率:100%
帮助的人:178万
展开全部
  1. 用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==0&&y%100!=0||y%400==0) //最基本的判断闰年的条件 
    printf("这个月有29天\n");
    else printf("这个月有28天\n");break;
    case 4:
    case 6:
    case 9 :
    case 11:printf("这个月有30天\n");break;
    }
    return 0;
    }

  2. 用指针型列举的:
    #include<stdio.h>
    int a[]={31,28,31,30,31,30,31,31,30,31,30,31},*p1,*p2,*p3,i=1,k=0;
    int main()
    {
    int p1,p2;
    printf("请依次输入年·月:\n");
    scanf("%d%d",&p1,&p2);
    if(p1%4==0&&p1%100!=0||p1%400==0)
    a[1]=29;
    if(p2>12)
    printf("您的输入有误!\n");
    printf("这个月的天数为:%d\n",a[p2-1]);
    return 0;
    }#include <stdio.h>
    main()
    {int a,b;
    printf("请输入年份和月份:\n");
    scanf("%d%d",&a,&b);
    if (a%4==0&&a%100!=0)
    if(b==2)
    printf("这个月有29天\n");
    else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
    printf("这个月有31天\n");
    else 
    printf("这个月有30天\n");
    else if(b==2)
    printf("这个月有28天\n");
    else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
    printf("这个月有31天\n");
    else 
    printf("这个月有30天\n");}

  3. 普通

    #include <stdio.h>
    main(){
    int a,b;
    printf("请输入年份和月份:\n");
    scanf("%d%d",&a,&b);
    if (a%4==0&&a%100!=0)
    if(b==2)
    printf("这个月有29天\n");
    else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
    printf("这个月有31天\n");
    else 
    printf("这个月有30天\n");
    else if(b==2)
    printf("这个月有28天\n");
    else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
    printf("这个月有31天\n");
    else 
    printf("这个月有30天\n");}

扩展资料

switch 语句可以处理多分支选择问题,根据其中break 语句的使用方法,一般分三种情况。

在switch 语句的每个语句段中都使用break 语句,这是switch 语句的主要使用方法,一般形式为:

switch (表达式)

case 常量表达式1: 语句段1; break;

case 常量表达式2: 语句段2; break;

case常量表达式n: 语句段n; break;

case常量表达式n+1:语句段n+ 1; break;

default :

参考资料c语言百度经验

pieryon
2022-08-15 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166868
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
c语言实现如下:
#include<stdio.h>
int main()
{
int year,month;
int day[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入年份与月份:\n");
scanf("%d%d",&year,&month);
if (year%4==0&&year%100!=0||year%400==0) day[1]++;
//判断是否为闰年,2月份加1天
printf("%d年%d月有%d天\n",year,month,day[month-1]);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
stanchcorder6
2022-09-02 · TA获得超过3089个赞
知道大有可为答主
回答量:3925
采纳率:70%
帮助的人:903万
展开全部
#include <stdio.h>
int main (void) {
    int year, month;
    switch (scanf ("%d%d", &year, &month), month) {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            printf ("31\n");
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            printf ("30\n");
            break;
        case 2:
            printf ("%s\n", (year / ((year % 100) ? 1 : 100) % 4) ? "28" : "29");
            break;
        default:
            return -1;
    }
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式