要设计程序判定闰年,可以使用以下规则:
1. 普通闰年:能被4整除但不能被100整除的年份。
2. 世纪闰年:能被400整除的年份。
基于这些规则,可以编写一个程序来判断给定的年份是否是闰年。以下是几种不同编程语言的实现方法:
C语言实现
```c
include
int isLeapYear(int year) {
if (year % 4 == 0) {
if (year % 100 == 0) {
if (year % 400 == 0) {
return 1; // 是闰年
} else {
return 0; // 不是闰年
}
} else {
return 1; // 是闰年
}
} else {
return 0; // 不是闰年
}
}
int main() {
int year;
printf("Enter a year: ");
scanf("%d", &year);
if (isLeapYear(year)) {
printf("%d is a leap year.\n", year);
} else {
printf("%d is not a leap year.\n", year);
}
return 0;
}
```
Python实现
```python
def is_leap_year(year):
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
return True
else:
return False
year = int(input("Enter a year: "))
if is_leap_year(year):
print(f"{year} is a leap year.")
else:
print(f"{year} is not a leap year.")
```
JavaScript实现
```javascript
function isLeapYear(year) {
return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
}
const year = parseInt(prompt("Enter a year:"));
if (isLeapYear(year)) {
console.log(`${year} is a leap year.`);
} else {
console.log(`${year} is not a leap year.`);
}
```
代码优化
上述C语言代码已经相当简洁,但可以进一步简化为:
```c
include
int isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
int main() {
int year;
printf("Enter a year: ");
scanf("%d", &year);
if (isLeapYear(year)) {
printf("%d is a leap year.\n", year);
} else {
printf("%d is not a leap year.\n", year);
}
return 0;
}
```
这些代码示例都遵循了闰年的判断规则,并通过用户输入来验证年份是否为闰年。你可以根据需要选择合适的编程语言和实现方式。