深海潜水员 2023-06-26 15:41 采纳率: 100%
浏览 34
已结题

关于#c语言#的问题:#define_CRT_SECURE_NO_WARNINGS1#include <stdio.h>

这个代码有什么问题吗?我运行总是出错,希望能得到帮助。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
    int a, b, c, d;
    printf("请输入年,月,日");
    scanf("%d %d %d", &a, &b, &c);
    printf("这天是&d", a);
    printf("年的");
    switch (b)
    {
    case('1'):
    {
        printf("%d", c);
        break;
    }
    case('2'):
    {
        d = c + 31;
        printf("%d", d);
        break;
    }
    case('3'):
    {
        d = c + 59;
        printf("%d", d);
        break;
    }
    case('4'):
    {
        d = c + 90;
        printf("%d", d);
        break;
    }
    case('5'):
    {
        d = c + 120;
        printf("%d", d);
        break;
    }
    case('6'):
    {
        d = c + 151;
        printf("%d", d);
        break;
    }
    case('7'):
    {
        d = c + 181;
        printf("%d", d);
        break;
    }
    case('8'):
    {
        d = c + 212;
        printf("%d", d);
        break;
    }
    case('9'):
    {
        d = c + 243;
        printf("%d", d);
        break;
    }
    case('10'):
    {
        d = c + 273;
        printf("%d", d);
        break;
    }
    case('11'):
    {
        d = c + 304;
        printf("%d", d);
        break;
    }
    case('12'):
    {
        d = c + 334;
        printf("%d", d);
        break;
    }
    printf("天");
    }
    return 0;
}

img


能够帮到我真是太好了,谢谢大家了。

  • 写回答

5条回答 默认 最新

  • 喝茶品人生 2023-06-26 16:00
    关注

    不仅是case判断类型的出错问题,你没有考虑过闰年的情况,我给你修改了代码
    开始运行...
    请输入年,月,日:2023 6 26
    这天是2023年的第177天

    #define _CRT_SECURE_NO_WARNINGS 1
    #include<stdio.h>
    
    int isLeapYear(int year) {
        if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
            return 1; 
        }
        return 0; 
    }
    
    int main()
    {
        int year, month, day;
        printf("请输入年,月,日:");
        scanf("%d %d %d", &year, &month, &day);
    
        int days_per_month[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    
        if (isLeapYear(year)) {
            days_per_month[1] = 29; 
        }
    
        int total_days = day;
        for (int i = 0; i < month - 1; i++) {
            total_days += days_per_month[i];
        }
    
        printf("这天是%d年的第%d天\n", year, total_days);
    
        return 0;
    }
    
    
    
    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 7月8日
  • 专家已采纳回答 6月30日
  • 创建了问题 6月26日

悬赏问题

  • ¥15 asp.net mvc从模板创建视图失败
  • ¥20 用qt设计一个完整程序(有偿)
  • ¥15 GRU代码预测出错,结果很差
  • ¥100 中断和线程导致内核崩溃问题
  • ¥15 iE 浏览器不能访问 oracle secure global server, google 浏览器可以
  • ¥50 Namuru2007_Baseband_Verilog代码疑点
  • ¥15 复杂公式求最值问题,含有多个符号常量
  • ¥15 Qt移植后在开发板上无法运行
  • ¥15 关于STID337-32D15YB开发板LINUX调试
  • ¥15 有没有熟悉自动化点胶设备,有个加密狗,想复制一份软件到另个设备