义一个结构体变量(包括年、月、日),编程序,要求输入年月日,计算并输出该日 在本年中第几天。

注意本题一定要定义结构体变量这是我写的:#include<stdio.h>structDATE{intyear;intmounth;intday;};intmain(){... 注意本题一定要定义结构体变量
这是我写的:
#include<stdio.h>
struct DATE
{
int year;
int mounth;
int day;
};
int main()
{
struct DATE date;
int leap_1,leap_2;
int sum;
while(scanf("%d%d%d",&date.year,&date.mounth,&date.day)!=EOF)
{
leap_1=0,leap_2=0;
if(date.year%100!=0&&date.year%4==0 || date.year%400==0)
{
leap_1=1;
}
switch(date.mounth)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default :printf("Input error!\n");leap_2=1;break;
}
sum=sum+date.day;
if(leap_1==1)
{
sum=sum+1;
}
if(leap_2==0)
{
printf("%d\n",sum);
}
}
return 0;
}
为什么在OJ平台上通不过?
展开
 我来答
64mylove
2012-05-16
知道答主
回答量:5
采纳率:0%
帮助的人:3万
展开全部
错误很多:
1、当输入月份不对时,sum并未初始化,输出“Input error!”后,后面的代码在继续运算!但由于为初始化,没法算。
2,、就算月份输入正确,如果输入2006 4 31呢??
3、计算输入全部正确,当是闰年时,但在2月29日之前,还需要运算sum++吗?
liuxin5926
2012-05-15 · 超过11用户采纳过TA的回答
知道答主
回答量:22
采纳率:0%
帮助的人:32万
展开全部
当月份输入错误,如输入2012 13 28时,sum并未初始化,你把int sum;改成int sum=0;试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式