teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コードの修正

2019/06/19 10:09

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  int days(int y, int m, int d)
5
5
  {
6
- static int t[] = { 306,337,0,31,61,92,122,153,184,214,244,275 };
6
+ static int t[] = { 306,337,0,31,61,92,122,153,184,214,245,275 };
7
7
  return y -= m < 3, y*365 + y/4 - y/100 + y/400 + t[m-1] + d;
8
8
  }
9
9
 

1

コードの修正

2019/06/19 10:09

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  int days(int y, int m, int d)
5
5
  {
6
- int t[] = { 306,337,0,31,61,92,122,153,184,214,244,275 };
6
+ static int t[] = { 306,337,0,31,61,92,122,153,184,214,244,275 };
7
7
  return y -= m < 3, y*365 + y/4 - y/100 + y/400 + t[m-1] + d;
8
8
  }
9
9
 
@@ -15,4 +15,7 @@
15
15
  関数 days は、0年3月1日からの通算日を求めます。
16
16
  配列 t は、m月1日がその年の 3月1日から何日後かの表です。
17
17
  1月と 2月は前年の 3月1日から何日後かの値になっています。
18
- そのため、y -= m < 3 で y を前年にしています。
18
+ そのため、y -= m < 3 で y を前年にしています。
19
+
20
+ [追記]
21
+ static を追加しました。これは非常に重要なことです。