3、 声明一个结构体,包括年、月、日 成员,定义一个结构体变量,计算该日在本年中是第几天,注意闰年

 我来答
碧海风云

2019-06-05 · 碧海风的秘密小据点!
碧海风云
采纳数:909 获赞数:10281

向TA提问 私信TA
展开全部
#include <stdio.h>
#include <conio.h>

/* 日期存储结构 */
typedef struct date {
int year; /* 年 */
int month; /* 月 */
int day; /* 日 */
} date;

int dpm[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; /* 平年每月天数 */

/* 判断闰年 1:是; 0:否 */
/* 闰年特点:年份是4的倍数但不是100的倍数、年份是400的倍数 */
int isLeap (int year) {
    return (year%4==0 && year%100!=0) || (year%400==0);
}

/* 求日期为当年的第几天 */
int days (int year, int month, int day) {
int i;
int days = 0; 
/* 年初至上月天数累加 */
for (i=1; i<month; i++)
days += dpm[i];
if (month>2 && isLeap(year)) /* 闰年加1天 */
days++;
days += day; /* 月初至当前天数累加 */
return days;
}

int main (void) {
date dt;
int x = 0;
int i;

printf ("输入年月日:");
scanf ("%d%d%d", &dt.year, &dt.month, &dt.day);

x = days (dt.year, dt.month, dt.day);
printf ("%d年%d月%d日是%d年的第%d天!\n", dt.year, dt.month, dt.day, dt.year, x);
 
getch (); /*屏幕暂留*/
return 0;
}

如有问题,点击头像联系我

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式