| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2325 人关注过本帖
标题:黑色星期五有关的一个题目...为什么我的这个代码算不正确
只看楼主 加入收藏
zhuanshuxiem
Rank: 1
来 自:湖南-张家界
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-12-9
收藏
 问题点数:0 回复次数:3 
黑色星期五有关的一个题目...为什么我的这个代码算不正确
二楼代码、一楼题目:
题目描述

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
搜索更多相关主题的帖子: 黑色星期五 
2012-12-15 17:56
zhuanshuxiem
Rank: 1
来 自:湖南-张家界
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-12-9
收藏
得分:0 
#include <stdio.h>
int main(void)
{
    int i, j, z, n, x, sum = 0, num = 0, count[7] = {0};//一次存储星期一到星期日
    int 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}
    };
    scanf("%d", &n);
    for (i = 0; i < n; i++)
    {
        j = (2 == i % 4) ? 1 : 0;//判断是否是闰年
        for (z = 0; z < 12; z++)
        {
            num = sum + 13;//
            count[num%7]++;//计算每一个月的13号是星期几
            sum += day[j][z];//累加每一个月的天数
        }
    }
    printf("%d %d", count[6], count[0]);//输出星期六、星期天
    for (i = 1; i < 6; i++)
        printf(" %d", count[i]);//依次输出星期一到星期五
    printf("\n");
    return 0;
}

半个人伴奏冷笑话,半句话半首蝶恋花.
2012-12-15 17:56
zhuanshuxiem
Rank: 1
来 自:湖南-张家界
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-12-9
收藏
得分:0 
...找到了,题目没有看清楚

半个人伴奏冷笑话,半句话半首蝶恋花.
2012-12-15 18:13
X2663429648
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-6-9
收藏
得分:0 
回复 2楼 zhuanshuxiem
#include <stdio.h>
int main()
{
    int i, j, z, n, x, sum = 0, num = 0, count[7] = {0};
    int 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}};
    scanf("%d", &n);
     
    for (i=1990; i<1990+n;i++)
    {
         num=sum+13;  
        j =((i%4==0&&i%100!=0)||(i%400==0)) ? 1: 0;
        for (z = 0; z < 12; z++)
        {     
             if     (num%7==5)  count[0]++;   
             else if(num%7==6)  count[1]++;
             else if(num%7==0)  count[2]++;
             else if(num%7==1)  count[3]++;
             else if(num%7==2)  count[4]++;
             else if(num%7==3)  count[5]++;
             else               count[6]++;
             sum += day[j][z];
        }
    }
    printf("%d %d", count[6], count[0]);
    for (i = 1; i < 6; i++)
        printf(" %d", count[i]);
    printf("\n");
    return 0;
}为什么结果还是不对呀
2017-06-09 17:23
快速回复:黑色星期五有关的一个题目...为什么我的这个代码算不正确
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011080 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved