| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 422 人关注过本帖
标题:高手帮忙看一下,怎么改正啊?
只看楼主 加入收藏
fightingsss
Rank: 6Rank: 6
等 级:侠之大者
帖 子:97
专家分:471
注 册:2010-11-12
结帖率:80%
收藏
已结贴  问题点数:2 回复次数:3 
高手帮忙看一下,怎么改正啊?
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int A[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    char DayOfWeek[8][10]={"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday","Saturday"};
    int a,b,c,j,p,t,m,n;
    int i=0,k=0;
    int year,month,day;

    m=365*3+366;

NEXT:
    scanf("%d",&n);

    if (n==-1)
        return 0;

    a=n;
    b=n;
    a=a/m;
    b=b%m;
    t=b/365;

    year=2000+a*4+t;
    switch (t)
    {
    case 0:
    case 1:
        b=b-366;
        break;
    case 2:
        b=b-(366+365);
        break;
    case 3:
        b=b-(366+365*2);
        break;
    }

        while (b>A[k])
        {
            b=b-A[k];
            k++;
        }
    month=k+1;
    day=b;
    c=n%7;
    printf("%d-%d-%d %c\n", year,month,day,DayOfWeek[c-1]);
    goto NEXT;
}
这个程序很有问题
我想输入一个数n
然后求出2000年1月1日过了n天以后的年月日和星期
2000年1月1日是星期六
时间不超过9999年
搜索更多相关主题的帖子: include return 
2010-11-28 20:04
DreamSkyCC
Rank: 2
来 自:河北赵县
等 级:论坛游民
帖 子:40
专家分:58
注 册:2010-11-28
收藏
得分:2 
不好该 阿,要不我帮你重写一个?

努力总会有收获!
2010-11-28 20:27
fightingsss
Rank: 6Rank: 6
等 级:侠之大者
帖 子:97
专家分:471
注 册:2010-11-12
收藏
得分:0 
(⊙o⊙)…我其实不太喜欢去挪用别人的东西的。。。不过你可以写出来我参考一下。。。我已经有大致的想法了。。。
2010-11-29 12:18
fightingsss
Rank: 6Rank: 6
等 级:侠之大者
帖 子:97
专家分:471
注 册:2010-11-12
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int A[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    char DayOfWeek[8][10]={"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
    int a,b,c,p,n;
    int i,z;
    int year=2000,month,day;

    scanf("%d",&n);
    while (1)
    {
        if (n==-1)
            return 0;

        a=n;
        i=0;
        z=2000;
        c=(n+6)%7;

        if (n<=365)
        {
            A[1]=29;
            while (a>=0)
            {
                a=a-A[i];
                i++;
            }
            month=i;
            day=1+a+A[i-1];
        }
        else
        {
            n=n+1;
            while (n>365)
            {
                if ((z%4==0&&z%100!=0)||(z%400==0))
                {
                    if (n>366)
                        n=n-366;
                    else
                        continue;
                }
                else
                {
                        n=n-365;
                }
                z++;
            }
            year=z;
            p=n;
            if ((year%4!=0&&year%100!=0)||(year%100==0&&year%400!=0))
            {
                A[1]=28;
                while (p>0)
                {
                    p=p-A[i];
                    i++;
                }
            }
            else
            {
                A[1]=29;
                while (p>0)
                {
                    p=p-A[i];
                    i++;
                }
            }
            month=i;
            day=p+A[i-1];
        }
        printf("%d-%02d-%02d %s\n",year,month,day,DayOfWeek[c]);

        scanf("%d",&n);
    }
}
这是改过之后的,怎么样修改才可以让这个程序运行的更加快一点。。。。
就是怎么修改主要的结构
先不管这个程序有没有问题
怎样才可以加快程序运行的速度
2010-11-30 13:44
快速回复:高手帮忙看一下,怎么改正啊?
数据加载中...
 
   



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

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