中易网

用C语言函数输入某年某月某日,判断这一天是这一年的第几天?

答案:5  悬赏:0  
解决时间 2021-04-27 06:05
#include<stdio.h>
int allday(int year)
{
int day=365;
if(year%4==0&&year%100!=0||year%400==0)
day=366;
return day;
}
int a(int month)
{
if(month<=12&&month>=1);
switch(month)
{
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:
case 12:
return month;
}
}
main()
{
int year,month,day,sum;
printf("输入一个年份");
scanf("%d",&year);
printf("今年一共有%d天\n",allday(year));
printf("输入一个月份");
scanf("%d",&month);
printf("这是今年的第%d月\n",a(month));
printf("输入要查询的那天");
scanf("%d",&day);
// printf("这天是今年的%d天",h(day));

}

这是我没做完的,我不会怎么计算这一天是一年中的第几天呀!~
最佳答案

你的函数h(day)只传入一个参数,怎么计算天数呢?改成3个参数就可以直接返回了int h(int year;int month,int day)
{
     int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
     int s=0,i;
     for(i=0;i<month;i++)
          s=s+a[i];
          if((year%4==0&&year%100!=0||year%400==0)&&month>2)
           return s+day+1;
           else
           return s+day;
}
全部回答
你的函数h(day)只传入一个参数,怎么计算天数呢?改成3个参数就可以直接返回了int h(int year;int month,int day) { int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int s=0,i; for(i=0;i<month;i++) s=s+a[i]; if((year%4==0&&year%100!=0||year%400==0)&&month>2) return s+day+1; else return s+day; }
好深奥啊!
short finddays(short year, short month, short day) { short toReturn = day; switch (month) { case 12:toReturn += 30; case 11:toReturn += 31; case 10:toReturn += 30; case 9:toReturn += 31; case 8:toReturn += 31; case 7:toReturn += 30; case 6:toReturn += 31; case 5:toReturn += 30; case 4:toReturn += 31; case 3:toReturn += (year % 4 ? 28 : 29); case 2:toReturn += 31;break; default:break; } return toReturn; }
|#include <stdio.h> #include <stdlib.h> static int daytable[2][13] = { {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} }; void get_day ( int year, int *dayofyear, int month, int day ) { int i, leap; leap = (( year % 4 == 0 ) && ( year % 100 != 0 ) || ( year % 400 == 0 )); *dayofyear = 0; for (i=1;i< month;i++) { *dayofyear = *dayofyear + daytable[leap][i]; } *dayofyear = *dayofyear + day; } void main() { int year,month,day; int days; printf("Enter the year month day (for example: 2008 3 1)\n"); scanf("%d %d %d",&year,&month,&day); (void) get_day ( year, &days, month, day ); printf("the days=%d\n",days); }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在excel中插入word文档不分页显示,怎么办?
《三国》里谁武功最强
当两个人同时喜欢一个的时候,该怎样去面对?
一般私立幼儿园老师的工资是多少
请问我的G币能送人吗?该怎样操作呢?
有人总是嫉妒我,怎么办才好?
2010nba自由市场在后卫,中锋上有什么厉害的
女孩约男孩出来说帮男孩介绍女朋友
怎么能让QQ生级的更快
可以自动挂机吗?????
请问对称式的两条空间平行直线的距离怎么求?
气功到底怎么回事?
我自己写了歌词,谁帮我改一下?把我的歌改成
为什么人们要睡觉
介绍几首在中国很受欢迎的英文歌
推荐资讯
张韶涵最新巧乐兹广告的男主角是谁
会员与超Q哪个好
怎么能让一个不要脸的人认识到自己错了
为什么DNF两周年庆祝洗点水没我的?
江苏徐州市九里区陈庄2队1989年3月30号的白羊
歪歪语音多少积分能上传视频?
人怎样追求完美?
人们最 喜欢的东西
超汗...怎么表白吖..高人指点吖!
哪有免费游戏?
请问呼和浩特去棋盘井,呼和浩特去乌海海南区
“高温低压”这个说法有没有范围的
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?