qq_46067327 2022-07-13 17:09 采纳率: 94.1%
浏览 53
已结题

用switch case算一个月有多少天

想用switch case 写一个算一个月有多少天并将天数输出
#include<stdio.h>

int main(){
int year,month,day;

printf("请输入年份和月份\n");
scanf("%d %d",&year,&month);
if(year<1||month<1||month>12)
    printf("你输入的年份或月份不合法");
else{
        switch(month)
        {    case '1':
            case '3':
            case '5':
            case '7':
            case '8':
                {day=31;
                break;}
            case '4':
            case '6':
                {day=30;
                break;}        
                        
        }
        printf("%d年的%d月有%d天\n",year,month,day);
    }

return 0;


}

显示了一个很大的负数天数

img

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • wang 恒 嵌入式领域新星创作者 2022-07-13 17:14
    关注

    您好,类型不匹配导致了该问题,将case 后面的引号全去掉,如:case '1' 变成 case 1,因为你scanf 输入的格式是 %d int型,在case 后面就不能用char

    #include<stdio.h>
    
    int main(void){
        int year,month,day;
        printf("请输入年份和月份\n");
        scanf("%d %d",&year,&month);
        if(year<1||month<1||month>12)
            printf("你输入的年份或月份不合法\n");
        else{
            switch(month)
            {    
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                    {
                        day=31;
                        break;
                    }
                case 4:
                case 6:
                    {
                        day=30;
                        break;
                    }
            }
            printf("%d年的%d月有%d天\n",year,month,day);
        }
    
        return 0;
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月21日
  • 已采纳回答 7月13日
  • 创建了问题 7月13日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据