解题思路:
整体不算难。定义一个结构体,输入年、月、日;然后判断其是否是闰年,随后相加用户输入的月份减一的总天数,最后再加上用户输入的第几天,即完成。
注意事项:
一定要注意闰年的判断方式:
(1)普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1900年不是闰年)
(2)世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
参考代码:
#include<iostream>
using namespace std;
struct Date//定义一个结构体
{
int year;
int month;
int day;
};
int main()
{
Date c;//结构体对象
cin >> c.year >> c.month >> c.day;
int sum = 0;
if ((c.year % 400 == 0) || (c.year % 4 == 0 && c.year % 100 != 0))//判断是闰年
{
for (int i = 1; i < c.month; i++) //从1月开始计总天数,一直到用户输入的月份的上一个月为止
{
int Day = 0;//Day是每个月的天数
if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12)
{
Day = 31;
}
else if (i == 4 || i == 6 || i == 9 || i == 11)
{
Day = 30;
}
else
Day = 29;//闰年2月29天
sum += Day;//累次相加
}
}
else//判断是平年
{
for (int i = 1; i < c.month; i++)
{
int Day = 0;
if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12)
{
Day = 31;
}
else if (i == 4 || i == 6 || i == 9 || i == 11)
{
Day = 30;
}
else
Day = 28;//平年2月28天
sum += Day;
}
}
sum = sum + c.day;//最后与用户输入的该月的第几天相加即得总天数
cout << sum << endl;
return 0;
}
0.0分
0 人评分
2005年春浙江省计算机等级考试二级C 编程题(3) (C语言代码)浏览:417 |
C语言训练-求素数问题 (C语言代码)浏览:1509 |
人见人爱A+B (C语言代码)浏览:663 |
C语言训练-排序问题<1> (C语言代码)浏览:636 |
输出正反三角形 (C语言代码)浏览:859 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:1090 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:900 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:1292 |
【绝对值排序】 (C语言代码)浏览:892 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:582 |