每次输入为一个字符串,字符串的格式为 YEAR/MM/DD,即 YEAR 年 MM 月 DD 日。要求输出这是一年的第几天。
希望偶多组数据。不知道要怎么处理输入结束
给出一个字符串代表日期,问它是这一年的第几天
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 #include <stdio.h> int monthday[] = { 0, // (1) 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int sumday[13]; char str[100]; int y, m, d; int main() { int i; while (scanf("%s", str) != EOF) { sscanf(str, "%4d/%2d/%2d", &y, &m, &d); if (y % 4 == 0 && y % 100 || y % 400 == 0) { monthday[2] = 29; // (2) } else { monthday[2] = 28; } sumday[0] = 0; for (i = 1; i <= 12; ++i) { // (3) sumday[i] = sumday[i - 1] + monthday[i]; } int ans = sumday[m - 1] + d; // (4) printf("%d\n", ans); } return 0; }
- $(1)$ 数组
monthday[i]
存储的是平年的情况下,第 $i$ 个月的总天数; - $(2)$ 根据条件判断是闰年的情况下,2月的总天数变成 29;
- $(3)$ 统计 $1$ 月到 $i$ 月的总天数存储在
sumday[i]
中; - $(4)$ 根据前面月份加上当前天数,计算总的天数;
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录- $(1)$ 数组
悬赏问题
- ¥50 怎么判断同步时序逻辑电路和异步时序逻辑电路
- ¥15 差动电流二次谐波的含量Matlab计算
- ¥15 Can/caned 总线错误问题,错误显示控制器要发1,结果总线检测到0
- ¥15 C#如何调用串口数据
- ¥15 MATLAB与单片机串口通信
- ¥15 L76k模块的GPS的使用
- ¥15 请帮我看一看数电项目如何设计
- ¥23 (标签-bug|关键词-密码错误加密)
- ¥66 比特币地址如何生成taproot地址
- ¥20 数学建模数学建模需要