| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 438 人关注过本帖
标题:求助,第一次提问,有什么不足请多多包涵!
只看楼主 加入收藏
Q214HW
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2011-6-7
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
求助,第一次提问,有什么不足请多多包涵!
                                                   黑色星期五
从1991年1月1日(星期一)开始,随意输入n年,求每月13号为星期几,然后总输出。我写了这个代码,但结果错了,求解!
#include<stdio.h>
int main()
{
    int year,n,i,flag,month[12]={0,31,28,31,30,31,30,31,31,30,31,30};
    int a[7],k,j;
    long days;
    for(i=0;i<7;i++)
    a[i]=0;
    do
    {
        scanf("%d",&n);
    }while(n<1||n>400);
    for(year=1990;year<1990+n;year++)
    {
        k=year;
        days=13;
        days+=(k-1990)*365;
        month[2]=28;
        if(0==k%400||(0==k%4&&0!=k%100))
         month[2]+=1;
        for(j=1990;j<k;j++)
          if(0==j%400||(0==j%4&&0!=j%100))
            days+=1;
        for(i=0;i<12;i++)
         {
           days+=month[i];
           flag=days%7;
           switch(flag)
           {
             case 6:a[0]++;break;
             case 0:a[1]++;break;
             case 1:a[2]++;break;
             case 2:a[3]++;break;
             case 3:a[4]++;break;
             case 4:a[5]++;break;
             case 5:a[6]++;break;
           }
        }
    }
    for(i=0;i<7;i++)
    printf("%d ",a[i]);
    return 0;
}
搜索更多相关主题的帖子: 黑色星期五 
2011-06-07 21:30
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:5 
month里的都是什么呀? 看不懂。。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-07 21:32
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:5 
程序代码:
#include<stdio.h>
#include <stdlib.h>
bool funyear(int year)
{
    if(year%4 == 0 && year%100 != 0 || year%400 == 0)
        return true;
    else
        return false;
}
int main()
{
    unsigned int a;
    unsigned int year;
    while(1)
    {
        scanf("%d",&year);
        int sum = 2;
        for(a = 1980;a<year;a++)
        {
            if(funyear(a))
                sum+=2;
            else
                sum++;
        }
        int start = sum%7;
        getchar();
        int i,j,k;
        for(j = 1;j<=12;j++)
        {
            printf("Start is %d\n",start);
            printf("Month:%d\n",j);
            if(j == 1 ||j == 3 ||j == 5 ||
                j == 7||j == 8||j == 10||j == 12)
            {
                printf("日  1  2  3  4  5  6\n");
                int k = 0;
                for(k = 0;k<start;k++)
                    printf("X  ");
                for(i = 1;i<=31;i++)
                {
                    k++;
                    printf("%-2d ",i);
                    if(k%7 == 0)
                        printf("\n");
                }
                start+=31;
                start = start%7;
            }
            else if(j == 4 ||j == 6 ||j == 9 ||
                j == 11)
            {
                printf("日  1  2  3  4  5  6\n");
                int k = 0;
                for(k = 0;k<start;k++)
                    printf("X  ");
                for(i = 1;i<=30;i++)
                {
                    k++;
                    printf("%-2d ",i);
                    if(k%7 == 0)
                        printf("\n");
                }
                start+=30;
                start = start%7;
            }
            else if(funyear(year))
            {
                printf("日  1  2  3  4  5  6\n");
                int k = 0;
                for(k = 0;k<start;k++)
                    printf("X  ");
                for(i = 1;i<=29;i++)
                {
                    k++;
                    printf("%-2d ",i);
                    if(k%7 == 0)
                        printf("\n");
                }
                start+=29;
                start = start%7;
            }
            else
            {
                printf("日  1  2  3  4  5  6\n");
                int k = 0;
                for(k = 0;k<start;k++)
                    printf("X  ");
                for(i = 1;i<=28;i++)
                {
                    k++;
                    printf("%-2d ",i);
                    if(k%7 == 0)
                        printf("\n");
                }
                start+=28;
                start = start%7;
            }
             printf("\n\n");
        }
    }
    return 0;
}
万年历奉上

                                         
===========深入<----------------->浅出============
2011-06-07 21:34
Q214HW
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2011-6-7
收藏
得分:0 
定义的表示月份天数的数组啊
2011-06-07 21:34
Q214HW
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2011-6-7
收藏
得分:0 
回复 3楼 laoyang103
我的编译器通不过了,谢谢了
2011-06-07 21:37
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
month[12]={31,28,31,30,31,30,31,31,30,31,30,31} 应该这样吧!

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-07 21:40
Q214HW
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2011-6-7
收藏
得分:0 
不用那样,我的是用0到11月就行了
2011-06-07 21:47
blackbansy
Rank: 2
等 级:论坛游民
帖 子:18
专家分:14
注 册:2011-6-6
收藏
得分:5 
void copystr(char *p1,char *p2,int m)
{
    while(p1[m])
    {
    *p2++=p1[m];
    m++;
      }
      *p2='\0';
}
函数也可以这样写,调用时把m的值减一

抽空开了个店铺,欢迎大家前往参观。店名: 衣省无忧
2011-06-07 21:51
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:5 
回复 6楼 ansic
嗯 我也觉得
2011-06-07 22:07
快速回复:求助,第一次提问,有什么不足请多多包涵!
数据加载中...
 
   



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

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