在以下程序中,leap是什么?有什么特殊?

#include "stdio.h"
int main(void)
{
int day, day_year, month, year;
int repeat, ri;

int day_of_year(int year, int month, int day);

scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d%d%d", &year, &month, &day);
/*---------*/
day_year = day_of_year(year, month, day);
printf("days of year: %d\n", day_year);
}
}
/*---------*/
int day_of_year(int year, int month, int day)
{
int k, leap;
int tab[2][13] = {
{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
};
leap = (year % 4 ==0 && year % 100 != 0 || year %400 ==0);
for(k = 1; k < month ; k++) {
day = day + tab[leap][k];
}
return day;
}

/*输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:
输入日期(年、月、日),输出它是该年的第几天。
要求定义与调用函数 day_of_year(year, month, day),
计算并返回year(年)、month(月)和day(日)对应的是该年的第几天,
函数形参year、month和day的类型是int,函数类型也是int。
输入输出示例:括号内为说明
输入:
2 (repeat=2)
1981 3 1 (1981年3月1日)
2000 3 1 (2000年3月1日)
输出:
days of year: 60 (1981年3月1日是该年的第60天)
days of year: 61 (2000年3月1日是该年的第61天)
*/

眼眸繁星
浏览 235回答 2
2回答

qq_笑_17

leap在这里就是一个int变量,是一个变量名字。不是关键字,一般变量名字取用户容易理解的字符。这里的leap就表示闰年的年份,当然你还可以取别的名字,只是一个变量而已。

Helenr

leap本意是跳跃,leap year是闰年的意思。这里和C++语法无关,只是一个自定义的标识符名称而已。这里leap = (year % 4 ==0 && year % 100 != 0 || year %400 ==0);,就是计算右边的逻辑表达式的值,如果year满足闰年的要求,这个表达式则为1,否则为0;然后将表达式的值赋给 leap 。于是 leap 为 1 表示 year 对应的整数年份为闰年,否则为平年。顺便,“闰年”另外一个说法是intercalary year。
打开App,查看更多内容
随时随地看视频慕课网APP