No.4ベストアンサー
- 回答日時:
int uruu;
int year;
for(year = 1900; year <= 2100; year++) {
if(year % 4 == 0) {
// 4で割り切れる
if(year % 100 == 0) {
// 100で割り切れる
if(year % 400 == 0) {
// 400で割り切れる = 閏年
uruu = 1;
} else {
// 400で割り切れない = 閏年では無い
uruu= 0;
}
} else {
// 100で割り切れない = 閏年
uruu = 1;
}
} else {
// 4で割り切れない = 閏年ではない
uruu = 0;
}
if(uruu == 1) {
// 閏年のときの処理
} else {
// 閏年ではないときの処理
}
}
規則どおりに書くのならこうなるね。
改良の余地はあるかもしれないけど。
No.5
- 回答日時:
/* 閏年判定関数
引数に西暦を渡し、閏年なら1を閏年でなければ0を返す*/
int leapyear( int year ){
return (((year%4==0) && (year%100!=0) || (year%400==0)) ? 1 : 0);
}
int main(){
int i;
for(i=1900;i<=2100;i+=4){
if( leapyear(i) ){
print("%d\n",i);
}
}
leapyear関数自体は汎用。
main内のループは、1900から2100までの閏年ってのに合わせてある。
No.3
- 回答日時:
かなり、手を抜くなら…
1900から2100の間で
・4で割り切れる
・100で割り切れる
・400で割り切れない
ものは、1900と2100だけなんですよね。
なので、1904から4づつ足していったものを表示するだけで良いような…
で、2096以下になったら、ループを抜ける、と。
No.2
- 回答日時:
誤魔化して書くなら、こう。
int nen;
for (nen = 1901;nen < 2100;nen++) {
if ((nen & 3) == 0) ptintf("%d年は閏年\n",nen);
}
ループの最初と最後の、1900年と2100年は通常年なので、ループしないで除外し、4で割れるかしか見ていない。
実際、1901~2099年の期間で使用する、年を下2桁しか持たないカレンダーICチップは、閏年の判定は「4で割り切れるなら閏年」としか判定しない。
更に言うなら年の割り算さえしない。年を保持するメモリの下位2ビットを取り出し、この2ビットが共に0の時は閏年、と処理している。
どうしてこういう手抜きをするかと言えば、計算が簡単になれば回路も簡単になり、それだけコストダウンになるのが理由。
ループから1900と2100を除外しないなら、こう。
int nen;
for (nen = 1900;nen <= 2100;nen++) {
if ((nen==1900)||(nen==2100)) continue;
if ((nen & 3) == 0) ptintf("%d年は閏年\n",nen);
}
年の制限をせずに、きっちり全部判断したいなら、質問者さんで工夫して下さい。
No.1
- 回答日時:
4で割り切れるかどうかを調べるには、割余演算子を使います。
C言語の場合、% 演算子です。
if ( nen % 4 = 0 ) {
// 4で割り切れる
}
こんな感じ。他の条件も一緒です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(行事・イベント) 2月はなぜ28日までしかないように作られたのですか。 3 2023/02/19 11:48
- 地球科学 太陽系の惑星と週(日曜日~土曜日)、月(1月~12月)に付いての質問です。 太陽系には、8つの惑星が 3 2022/10/08 22:32
- C言語・C++・C# c言語 1 2022/11/09 13:05
- その他(行事・イベント) 1月1日 元日 2月14日 バレンタインデー 2月29日 閏年 3月14日 ホワイトデー 4月1日 2 2023/01/02 00:18
- 物理学 ここで回答している相対論信者って全員、相対性理論を理解できてないですよね? 4 2023/03/08 12:40
- C言語・C++・C# C言語 3 2022/11/09 13:27
- docomo(ドコモ) 家電量販店の割引はキャリア変更になるとどうなる? 1年前iPhonese3に機種変しました。doco 4 2023/05/07 07:25
- 経済学 10年後の1000万円を分割で受け取る場合の割引率の計算は? 1 2022/08/26 23:25
- 就職・退職 定年延長の際の退職金 5 2022/07/05 16:49
- その他(ニュース・時事問題) ユニクロ「年収最大4割アップ」 本当か? それとも宣伝目的の”絵にかいた餅”なのか? 6 2023/01/23 18:19
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL Serverにおける小数部の0...
-
Vba TextBox1.ControlSourceに...
-
Excelのセルの色指定をVBAから...
-
テキストボックスのvalueとtext...
-
【Excel VBA】指定行以降をクリ...
-
特定のセルが空白だったら、そ...
-
ExcelのINDEXとMATCH関数でスピ...
-
ListView 項目の選択/選択解除...
-
VBAでActiveDirectoryのユーザ...
-
DataGrdViewに関連付けたデータ...
-
VBAで行削除できないようにする...
-
Excelで指定した日付から過去の...
-
【VBA】指定したセルと同じ値で...
-
VB.NETで DataRow()を利用して...
-
TODAY()で設定したセルの日付...
-
Excelのプルダウンで2列分の情...
-
Accessのクエリで、replace関数...
-
[SQL]重複内容を持つデータから...
-
i=cells(Rows.Count, 1)とi=cel...
-
[エクセル]連続する指定範囲か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL Serverにおける小数部の0...
-
16進数を10進数に変換する方法...
-
C言語のうるう年に関するプログ...
-
うるう年を求めるプログラム
-
日付と曜日から、1週間前(7...
-
Request.QueryStringの型について
-
万年暦の作り方
-
閏年が何個含まれるか求めるプ...
-
36進数
-
エクセルのカレンダー
-
プログラミング
-
和暦→西暦(有効範囲を考慮)
-
西暦と年号の変換プログラム
-
西暦を入力して、うるう年かど...
-
閏年のフローチャートについて
-
グレースケール表示するツール...
-
VB2008で西暦を和暦に変換...
-
和暦から西暦変換(C#)
-
進数変換のプログラムタイトル...
-
閏年自動判定
おすすめ情報