うるう年を順に出力するプログラムかいた。
Hello!!の次は1900年から2000年の間のうるう年を順に出力するプログラムを書くらしい。
とりあえずこのコードを書き写してくださいって言われたのでとりあえずかいてみた。
#include <stdio.h> main() { int y; for(y = 1900; y <= 2000; y++) { if ((y%4 == 0 && y%100 != 0 )||y%400 == 0){ printf("%d\n", y); } } return 0; }
とりあえず書き写してみたけどなんて書いてあるのかわからない。。(分かる事といったら1900という数字と2000という数字が入ってることw)
まあまずは自分が書いたソースが間違っていないか確認するためにコンパイルして実行してみた。
おおおおおおおおお!!!!!すげえ!!!!1904から2000までのうるう年がでてきた!!!!
どうやら成功らしいので解説をよんでみます。
解説を読んだところ、今の段階ではプログラムの内容は理解する必要はありませんっていわれました;
でも簡単に説明すると1900から2000までの年を1つずつうるう年かどうか判定しているらしいです。
判定方法は4で割り切れるけど100では割り切れないと年、または400で割り切れる年で判定しているらしいです。
多分。。ここが判定方法なんだとおもいます。(違うかもしれません
if ((y%4 == 0 && y%100 != 0 )||y%400 == 0){
y%4 == 0 は4でわりきれる見たいな意味で y%100 != 0 は100でわりきれないをあらわしているのかな?
y%400 == 0 は400で割り切れるみたいな意味だと思います。
そうすると y%ここに割る数を入れる == 0 っていうのは割り切れるという事をいってるのかな??(わりきれて == 0です。みたいな
自分なりに解析してみたけど多分違うと思うのでじゃんじゃん指摘してください。
なんか自分で勝手にソースコードを解析(解析って言うほどりっぱじゃない)してみたけど、
本はここではちょっと長いプログラムを書くコツみたいなものを教えているようです。
たとえばTabを使いましょうとか、1つの命令は1行で書きましょうとか・・見やすいプログラムを書く方法みたいな事です。