定义一个结构体(包括年,月,日),计算某在这年中是第几天,注意闰年问题。我的程序如下,请高手赐教!!

#include<stdio.h>intmain(){structday{intyears;intmonths;intdays;}day1;inti,sum=0;ints... #include<stdio.h>
int main()
{
struct day
{
int years;
int months;
int days;
}day1;
int i,sum=0;
int str1[12],str2[12];
str1[12]={30,29,31,30,31,30,31,31,30,31,30,31};
str2[12]={30,28,31,30,31,30,31,31,30,31,30,31};
printf("Please enter years ,months and days:");
scanf("%d%d%d",&day1.years,&day1.months,&day1.days);
if(day1.months==1)
sum=day1.days;
else if(day1.years%400==0||(day1.years%4==0&&day1.years%100!=0))
for(i=0;i<day1.months-1;i++)
{
sum+=str1[i];
sum+=day1.days;
}
else for(i=0;i<day1.months-1;i++)
{
sum+=str2[i];
sum+=day1.days;
}
printf("sum=%d\n",sum);
return 0;
}
展开
 我来答
扈怀炜4h
2012-05-18 · TA获得超过6038个赞
知道大有可为答主
回答量:6907
采纳率:67%
帮助的人:1312万
展开全部
1. 不能在循环中执行sum+=day1.days;
2. 如果闰年的话,还得考虑是大于二月,也就是说在
if((day1.year%400==0)||(day1..year%4==0 && day1.year%100!=0)) 还得有&&(day1.month>2)
即:
if(((day1.year%400==0)||(day1..year%4==0 && day1.year%100!=0)) &&(day1.month>2))

其余没有错 !
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式