阅读程序1
#include<iost ream> #include<cstdio> using namespace std; int daytab [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 } }; bool IsLeapYear(int year) { return (year % 4 ==0 && year % 100 != 0) || (year % 400 == 0); } int main() { int year, month, day; scanf("%d %d %d", &year, &month, &day); int number = 0; int row = IsLeapYear(year); for(int j = 0; j < month; ++j) { number += daytab[row][j]; } number += day; printf("%d\n", number); return 0; }
输入的三个数中,第二个数应是 [0, 11] 上的整数,否则会出现数组越界的问题。()
输入 1900 3 2 和输入 2000 3 1 ,输出结果是相同的。()
将第 9 行改成 return (year - 2000) % 4 == 0 ,其他地方不做改动,对程序最终的输 出结果没有影响。()
将第 9 行改成如下四行语句:
if(year % 400 == 0) return 1;
if(year % 100 == 0) return 0;
if(year % 4 == 0) return 1;
return 0; 其他地方不做改动,对程序最终的输出结果没有影响。()
若输入的三个数为 1990 9 20 ,则输出为( )
253
263
273
283
若输入的三个数为 2000 5 1 ,则输出为( )
122
123
124
125
发表评论