狐言fox 2021-07-12 20:54 采纳率: 100%
浏览 19
已采纳

刚开始学习,打代码出现问题,希望可以得到帮助

13号又是星期五是一个不寻常的日子吗? 13号在星期五比在其他日少吗?为了回答这个问题,写一个程序来计算在n年里13 日落在星期一,星期二星期日的次数.这个测试从1900年1月1日到 1900+n-1年12月31日.n是一个非负数且不大于400. 这里有一些你要知道的: 1900年1月1日是星期一. 4,6,11和9月有30天.其他月份除了2月有31天.闰年2月有29天,平年2月有28天. 年份可以被4整除的为闰年(1992=4*498 所以 1992年是闰年,但是1990年不是闰年) 以上规则不适合于世纪年.可以被400整除的世纪年为闰年,否则为平年.所以,1700,1800,1900和2100年是平年,而2000年是闰年. 请不要预先算好数据!

输入
一个整数n

输出
七个在一行且相分开的整数,它们代表13日是星期六,星期日,星期一.星期五的次数

样例输入
20

样例输出
36 33 34 33 35 35 34

#include<stdio.h>
int leap_year(int year) {
    if ((year % 4 == 0 || year % 400 == 0) && year % 100 != 0) return 1;
    else return 0;
}
int main() {
    int n;
    scanf_s("%d",&n);
    int month_Day[2][12] = { {31,28,31,30,31,30,31,31,30,31,30,31},
                             {31,29,31,30,31,30,31,31,30,31,30,31} };
    int week[20] = {0}, wek = 1;
    wek = 6;
    week[wek]++;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < 12; j++) {
            if (i == (n-1)&&j == 11) { j++; continue; }
            else {
                wek = (wek + (month_Day[leap_year(1900 + i)][j]%7))%7;
                week[wek]++;
            }
        }
    }
    printf("%d", week[6]);
    printf(" %d", week[0]);
    for (int i = 1; i <= 5; i++) {
        printf(" %d", week[i]);
    }
    return 0;
}

学校里的OJ只有错误78%,我也不清楚是什么条件上考虑不周

  • 写回答

4条回答 默认 最新

  • qzjhjxj 2021-07-13 15:28
    关注

    供参考:

    #include <stdio.h>
    
    int get_Week(int y,int m,int d)
    {
        int week = 0;
        if(m==1 || m == 2){
           m += 12;y--;
        }
        week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
        return week;
    }
    
    int main()
    {
        int y,m,n;
        int cdofc[7]={0}; //[0~6]:周一  --  周日)
        scanf("%d",&n);
        for(y=1900,m=1; y<1900+n; m++,m>12?(m=1,y++):m)
                           cdofc[get_Week(y,m,13)]++;
        printf("%d %d %d %d %d %d %d\n",cdofc[5],cdofc[6],cdofc[0],
                               cdofc[1],cdofc[2],cdofc[3],cdofc[4]);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已采纳回答 7月13日
  • 创建了问题 7月12日

悬赏问题

  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物