杭电 ACM 2005 WRONG ANSWER

#include<cstdio>intrun(intx){if((x%4==0&&x%100!=0)||(x%400)==0)return1;elsereturn0;}i... #include<cstdio>
int run(int x)
{
if((x%4==0&&x%100!=0)||(x%400)==0)return 1;
else return 0;
}
int main()
{
int m[13]={31,28,31,30,31,30,31,31,30,31,30,31};
int days,i,sig,year,month,day;
while(scanf("%d/%d/%d",&year,&month,&day)!=EOF)
{
days=0;
sig=run(year);
for(i=1;i<month;i++)
days+=m[i];
days+=day;
if(sig==1&&month>2)days++;
printf("%d\n",days);
}
return 0;
}
展开
 我来答
nanhay
2013-12-17 · TA获得超过1173个赞
知道小有建树答主
回答量:824
采纳率:0%
帮助的人:997万
展开全部
//******************************************************************************
// 杭电2005 第几天? 代码已AC
//******************************************************************************
#include<stdio.h> //标准C 头文件 ,AC时 Language选 C
int run(int x)
{
if ((x%4==0&&x%100!=0)||(x%400)==0)return 1;
else return 0;
}
int main()
{
int m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//依据后面代码,应该在前面添加一个 0
int days,i,sig,year,month,day;
while (scanf("%d/%d/%d",&year,&month,&day)!=EOF)
{
days=0;
sig=run(year);
for (i=1;i<month;i++) //***** i 是从1开始计数的 ,所以上面数组前面再加一个 0****
days+=m[i];
days+=day;
if (sig==1&&month>2)days++;
printf("%d\n",days);
}
return 0;
}
//******************************************************************************
// 祝学习进步,更上一层楼 *(^-^)*
//******************************************************************************
不得不自己飞
2013-12-18 · TA获得超过121个赞
知道答主
回答量:35
采纳率:100%
帮助的人:5.1万
展开全部

#include<cstdio>
int run(int x)
{
if((x%4==0&&x%100!=0)||(x%400)==0)return 1;
else return 0;
}
int main()
{
int m[13]={31,28,31,30,31,30,31,31,30,31,30,31};
int days,i,sig,year,month,day;
while(scanf("%d/%d/%d",&year,&month,&day)!=EOF)
{
days=0;
sig=run(year);
for(i=1;i<month;i++)
days+=m[i-1];//这里应该是m[i-1].你再试一下。
days+=day;
if(sig==1&&month>2)days++;
printf("%d\n",days);
}
return 0;
}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式