#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;}/*輸入一個(gè)正整數(shù) repeat (0<repeat<10),做 repeat 次下列運(yùn)算:輸入日期(年、月、日),輸出它是該年的第幾天。要求定義與調(diào)用函數(shù) day_of_year(year, month, day),計(jì)算并返回year(年)、month(月)和day(日)對(duì)應(yīng)的是該年的第幾天,函數(shù)形參year、month和day的類型是int,函數(shù)類型也是int。輸入輸出示例:括號(hào)內(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貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊
leap在這里就是一個(gè)int變量,是一個(gè)變量名字。
不是關(guān)鍵字,一般變量名字取用戶容易理解的字符。
這里的leap就表示閏年的年份,
當(dāng)然你還可以取別的名字,只是一個(gè)變量而已。
Helenr
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
leap本意是跳躍,leap year是閏年的意思。
這里和C++語法無關(guān),只是一個(gè)自定義的標(biāo)識(shí)符名稱而已。
這里leap = (year % 4 ==0 && year % 100 != 0 || year %400 ==0);,就是計(jì)算右邊的邏輯表達(dá)式的值,如果year滿足閏年的要求,這個(gè)表達(dá)式則為1,否則為0;然后將表達(dá)式的值賦給 leap 。于是 leap 為 1 表示 year 對(duì)應(yīng)的整數(shù)年份為閏年,否則為平年。
順便,“閏年”另外一個(gè)說法是intercalary year。
- 2 回答
- 0 關(guān)注
- 370 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
