解题思路:
整体不算难。定义一个结构体,输入年、月、日;然后判断其是否是闰年,随后相加用户输入的月份减一的总天数,最后再加上用户输入的第几天,即完成。
注意事项:
一定要注意闰年的判断方式:
(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 人评分
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:605 |
小九九 (C语言代码)浏览:817 |
printf基础练习2 (C语言代码)浏览:941 |
Pascal三角 (C语言代码)浏览:1182 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:1195 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:1090 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:685 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:520 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:1149 |
C二级辅导-温度转换 (C语言代码)浏览:718 |