#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;}/*輸入一個正整數(shù) repeat (0<repeat<10),做 repeat 次下列運算:輸入日期(年、月、日),輸出它是該年的第幾天。要求定義與調(diào)用函數(shù) day_of_year(year, month, day),計算并返回year(年)、month(月)和day(日)對應(yīng)的是該年的第幾天,函數(shù)形參year、month和day的類型是int,函數(shù)類型也是int。輸入輸出示例:括號內(nèi)為說明輸入: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天)*/
2 回答

qq_笑_17
TA貢獻1818條經(jīng)驗 獲得超7個贊
leap在這里就是一個int變量,是一個變量名字。
不是關(guān)鍵字,一般變量名字取用戶容易理解的字符。
這里的leap就表示閏年的年份,
當然你還可以取別的名字,只是一個變量而已。

Helenr
TA貢獻1780條經(jīng)驗 獲得超4個贊
leap本意是跳躍,leap year是閏年的意思。
這里和C++語法無關(guān),只是一個自定義的標識符名稱而已。
這里leap = (year % 4 ==0 && year % 100 != 0 || year %400 ==0);,就是計算右邊的邏輯表達式的值,如果year滿足閏年的要求,這個表達式則為1,否則為0;然后將表達式的值賦給 leap 。于是 leap 為 1 表示 year 對應(yīng)的整數(shù)年份為閏年,否則為平年。
順便,“閏年”另外一個說法是intercalary year。
- 2 回答
- 0 關(guān)注
- 313 瀏覽
添加回答
舉報
0/150
提交
取消