| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 383 人关注过本帖
标题:请高手帮我看下这个简单的问题 谢谢
只看楼主 加入收藏
S030902508
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2010-10-19
结帖率:25%
收藏
已结贴  问题点数:15 回复次数:4 
请高手帮我看下这个简单的问题 谢谢
http://acm.fzu.  这个是题目 。下面是我的代码   运行结果是对的  可是提交时总是wrong answer 麻烦指点下  谢谢啦
#include<stdio.h>
int main()
{
    int y,m,n,d,t,s,i,j,p;
    int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    while(scanf("%d",&n)!=EOF)
    {
        for(i=0;i<n;i++)
        {
            t=0;s=0;
            scanf("%d%d%d",&y,&m,&d);
            if(y<1958||y>3000)break;
            if(m<10||(m==10&&d<=25))
            {
               t=y-1958;
               if((y%4==0&&y%100!=0)||(y%400==0))
                   a[1]=29;
               for(j=m-1;j<10;j++)
               {s=s+a[j];}
               s=s-6-d;
            }
            else if(m>10||(m==10&&d>25))
            {
                t=y-1957;
                if(((y+1)%4==0&&(y+1)%100!=0)||((y+1)%400==0))
                   p=299;else p=298;
                for(j=m-1;j<12;j++)
                {s=s+a[j];}
                s=s+p-d;
            }
            printf("%d days left for celebrating the %dth anniversary of the founding of Fuzhou University!\n",s,t);
        }
    }
    return 0;
}
2010-10-19 11:25
自由战士89
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:387
注 册:2010-9-2
收藏
得分:0 
也许你忽略了第三种情况。
if()
else if()
else
当输入错误数据时,不符合程序的‘确定性’,也就是说每一步都要有确定的意义
2010-10-19 17:59
troy0215
Rank: 2
等 级:论坛游民
帖 子:16
专家分:71
注 册:2009-5-22
收藏
得分:15 
程序代码:
#include<stdio.h>
int main()
{
    int y,m,n,d,t,s,i,j,p;
    int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    while(scanf("%d",&n)!=EOF)
    {
        for(i=0;i<n;i++)
        {
            t=0;s=0;
            scanf("%d%d%d",&y,&m,&d);
           
            if(m<10||(m==10&&d<=25))
            {
               t=y-1958;
               if((y%4==0&&y%100!=0)||(y%400==0))
                   a[1]=29;
               for(j=m-1;j<10;j++)
               {s=s+a[j];}
               s=s-6-d;
               a[1]=28;    //这里~
            }
            else if(m>10||(m==10&&d>25))
            {
                t=y-1957;
                if(((y+1)%4==0&&(y+1)%100!=0)||((y+1)%400==0))
                   p=299;else p=298;
                for(j=m-1;j<12;j++)
                {s=s+a[j];}
                s=s+p-d;
            }
            printf("%d days left for celebrating the %dth anniversary of the founding of Fuzhou University!\n",s,t);
        }
    }
    return 0;
}

看我注释的地方~
2010-10-19 20:07
huang6543603
Rank: 1
等 级:新手上路
帖 子:4
专家分:7
注 册:2010-10-8
收藏
得分:0 
我看不懂题目,全英文的,无语.....
2010-10-19 20:23
S030902508
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2010-10-19
收藏
得分:0 
回复 3楼 troy0215
太感谢您了  我纠结了好久没发现这个小问题。
2010-10-19 21:46
快速回复:请高手帮我看下这个简单的问题 谢谢
数据加载中...
 
   



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

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