用fortran写:计算小明和小红经历过多少个2月29日、多少个闰年,列出他们共同经历了多少个闰年。 可以键入在2000-2200年之间的人的出生和死亡日期,并计算相关数据
时间: 2024-03-03 09:48:30 浏览: 110
通过函数判断2000年-2050年之间的闰年
以下是用Fortran语言编写的程序,用于计算两个人在他们的生命中经历了多少个2月29日,多少个闰年,以及共同经历了多少个闰年。程序要求输入两个人的出生和死亡日期,以及在2000年和2200年之间。
```
program leap_year
implicit none
integer :: year1, year2, month1, month2, day1, day2
integer :: i, leap1, leap2, leap_common, feb29_common
! 输入第一个人的出生日期
write(*,*) "请输入第一个人的出生日期:"
write(*,*) "年(YYYY):"
read(*,*) year1
write(*,*) "月(MM):"
read(*,*) month1
write(*,*) "日(DD):"
read(*,*) day1
! 输入第一个人的死亡日期
write(*,*) "请输入第一个人的死亡日期:"
write(*,*) "年(YYYY):"
read(*,*) year2
write(*,*) "月(MM):"
read(*,*) month2
write(*,*) "日(DD):"
read(*,*) day2
! 计算第一个人经历的闰年个数和2月29日个数
leap1 = 0
feb29_common = 0
do i = year1, year2
if (mod(i, 4) == 0 .and. (mod(i, 100) /= 0 .or. mod(i, 400) == 0)) then
leap1 = leap1 + 1
if (i >= 2000 .and. i <= 2200 .and. month1 <= 2 .and. month2 >= 2) then
feb29_common = feb29_common + 1
endif
endif
end do
! 输入第二个人的出生日期
write(*,*) "请输入第二个人的出生日期:"
write(*,*) "年(YYYY):"
read(*,*) year1
write(*,*) "月(MM):"
read(*,*) month1
write(*,*) "日(DD):"
read(*,*) day1
! 输入第二个人的死亡日期
write(*,*) "请输入第二个人的死亡日期:"
write(*,*) "年(YYYY):"
read(*,*) year2
write(*,*) "月(MM):"
read(*,*) month2
write(*,*) "日(DD):"
read(*,*) day2
! 计算第二个人经历的闰年个数和2月29日个数
leap2 = 0
do i = year1, year2
if (mod(i, 4) == 0 .and. (mod(i, 100) /= 0 .or. mod(i, 400) == 0)) then
leap2 = leap2 + 1
if (i >= 2000 .and. i <= 2200 .and. month1 <= 2 .and. month2 >= 2) then
feb29_common = feb29_common + 1
endif
endif
end do
! 计算共同经历的闰年个数
leap_common = min(leap1, leap2)
! 输出结果
write(*,*) "第一个人经历的闰年个数为:", leap1
write(*,*) "第二个人经历的闰年个数为:", leap2
write(*,*) "共同经历的闰年个数为:", leap_common
write(*,*) "共同经历的2月29日个数为:", feb29_common
end program leap_year
```
请注意,这个程序的输入和输出都是通过标准输入和输出进行的。如果需要在程序中使用文件输入和输出,需要使用相应的Fortran库函数。
阅读全文