求C语言题目答案——输入某年某月某日,判断这一天是这一年的第几天?

输入某年某月某日,判断这一天是这一年的第几天?求详解,谢谢了。能不能好人做到底,再给个流程图给我。... 输入某年某月某日,判断这一天是这一年的第几天?求详解,谢谢了。
能不能好人做到底,再给个流程图给我。
展开
 我来答
QitianAAA
2010-06-11 · TA获得超过366个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:261万
展开全部
#include <conio.h> /* 此头函数请不要删除 */

#include<stdio.h>
int main()
{
int days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int i,j,k,y,m,d,b,n,sum;
while(scanf("%d/%d/%d",&y,&m,&d)!=EOF)/*日期输入格式:2010/6/9*/
{
sum=0;
for(i=1;i<m;i++)
sum=sum+days[i];
sum=sum+d;
if((y%4==0||(y%400==0&&y%100!=0)) &&m>2)
sum=sum+1;
printf("%d\n",sum);
}
return 0;

getch(); /* 此语句请不要删除*/
}

简易流程图:
开始
建立数组存放12个月的各个天数
从键盘输入日期例如:1996/3/1
对输入月份以前的所有月的天数累加——sum
再加上输入的天数
判断是否为闰年
如果是 sum+1
如果不是 sum保持不变
输出“一年的第几天”
结束
qiuye46qiuye46
2010-06-09
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊

情况,闰年且输入月份大于3时需考虑多加一天。

2.程序源代码:

main()

{

int day,month,year,sum,leap;

printf("\nplease input year,month,day\n");

scanf("%d,%d,%d",&year,&month,&day);

switch(month)/*先计算某月以前月份的总天数*/

{

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("data error");break;

}

sum=sum+day; /*再加上某天的天数*/

if(year@0==0||(year%4==0&&year0!=0))/*判断是不是闰年*/

leap=1;

else

leap=0;

if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/

sum++;

printf("It is the %dth day.",sum);}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MICHAELXIA23
2010-06-09 · TA获得超过345个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:151万
展开全部
哈哈,告诉你哦。
定义一个全局函数 int this_year(int,int,int);
定义一个全局数组 Mon[12]={31,28,31,30,31,30,31,31,30,31,30,31};
函数如下:

int this_year(int Year,int Month,int Day)//返回该日期是当年的第几天
{
int Sum=0;
for(int i=1;i<Month;i++)
{
if(i==2)
Sum+=Mon[1]+(Year%4==0&&Year%100!=0||Year%400==0);
else
Sum+=Mon[i-1];
}
return Sum+Day;
}

用这个函数就行了。。。不懂直接问我
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
泉虹影来舞
2019-03-09 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:682万
展开全部
main()
{
int
day,month,year,sum,leap;
printf("\nplease
input
year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先计算某月以前月份的总天数*/
{
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("data
error");break;
}
sum=sum+day;
/*再加上某天的天数*/
if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
leap=1;
else
leap=0;
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("it
is
the
%dth
day.",sum);}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-09-09
引用QitianAAA的回答:
#include <conio.h> /* 此头函数请不要删除 */

#include<stdio.h>
int main()
{
int days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int i,j,k,y,m,d,b,n,sum;
while(scanf("%d/%d/%d",&y,&m,&d)!=EOF)/*日期输入格式:2010/6/9*/
{
sum=0;
for(i=1;i<m;i++)
sum=sum+days[i];
sum=sum+d;
if((y%4==0||(y%400==0&&y%100!=0)) &&m>2)
sum=sum+1;
printf("%d\n",sum);
}
return 0;

getch(); /* 此语句请不要删除*/
}

简易流程图:
开始
建立数组存放12个月的各个天数
从键盘输入日期例如:1996/3/1
对输入月份以前的所有月的天数累加——sum
再加上输入的天数
判断是否为闰年
如果是 sum+1
如果不是 sum保持不变
输出“一年的第几天”
结束
展开全部
需要区分吧,闰年和非闰年
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式