

C言語(閏年)の質問です。
任意の範囲の年から閏年の表示とその数をカウントして次の実行結果のように表示するプログラムの作成方法を教えてください。(ここでは2つの年をmain関数内で入力し、その範囲の西暦を引数とする関数checkYearを使用するものとする。int型の関数checkYearは、引数に西暦をとり、その西暦が閏年であれば、1を返し、閏年でない場合は0を返す。)
なお、閏年の判定方法は以下のとおりである。
条件1 西暦年が4で割り切れる年は閏年である
条件2 条件1を満たしていても、西暦年が100で割り切れるときは閏年でない
条件3 条件2を満たしていても、西暦年が400で割り切れるならば閏年である
実行例1
西暦を入力:2000
西暦を入力:2009
2000年
2004年
2008年
閏年は3回あります。
実行例2
西暦を入力:2100
西暦を入力:2000
2000年
2004年
2008年
2012年
2016年
2020年
(省略)
2096年
閏年は25回あります。
実行例3
西暦を入力:2090
西暦を入力:2110
2092年
2096年
2104年
2108年
閏年は4回あります。
No.4ベストアンサー
- 回答日時:
こんな感じでしょうか。
(体裁上、各行先頭のスペースは全角スペースにしてあるので、コピペするとコンパイルできないと思います)
#include <stdio.h>
static int
checkYear (int year)
{
if ((year % 4) == 0)
{
if ((year % 100) == 0)
{
if ((year % 400) == 0)
return (1);
}
else
return (1);
}
return (0);
}
int
main (int argc, char * argv[])
{
int count = 0;
int year, start, end;
printf ("西暦を入力:");
scanf ("%d", &start);
printf ("西暦を入力:");
scanf ("%d", &end);
if (start > end)
{
year = end;
end = start;
start = year;
}
for (year = start; year <= end; year++)
{
if (checkYear (year) == 1)
{
printf ("%d年\n", year);
count++;
}
}
if (count != 0)
printf ("閏年は%d回あります。\n", count);
else
printf ("閏年はありません。\n");
return;
}
No.2
- 回答日時:
えっと。
。。(^^;> (ここでは2つの年をmain関数内で入力し、その範囲の西暦を引数とする関数checkYearを使用するものとする。int型の関数checkYearは、引数に西暦をとり、その西暦が閏年であれば、1を返し、閏年でない場合は0を返す。)
というプログラムの「閏年であれば」の判定を
> 条件1 西暦年が4で割り切れる年は閏年である
> 条件2 条件1を満たしていても、西暦年が100で割り切れるときは閏年でない
> 条件3 条件2を満たしていても、西暦年が400で割り切れるならば閏年である
で行えばよいだけです。
それがチンプンカンプンという場合は「C言語の文法をほぼ知らない」、「いきなり背伸びし過ぎ」ということで、この問題を行う前に有名なHello worldからやるのがよいです。
ちなみにプログラミング言語云々以前に、やりたい機能仕様とそれを実現するための処理手順を日本語で具体的かつ明確に書けますか? ちまりは設計ですね。
それがしっかり出来るのであれば、処理手順を使用するプログラミング言語に翻訳するだけです。
参考まで。
No.1
- 回答日時:
いつも思うんですけど
質問がざっくりすぎなんですよね
作成方法ってなんですかね
なにが知りたいのでしょうか
あなたのC言語の質問いくつか回答していると思うのですが
まともに返事が返ってきたことが無い気がするのですよ
お礼がほしいとかではなく
解決できたかな?と気になるのですよね
どうせ大学の講義中の課題とかなんでしょうけど
もうちょっと自分で考えてみては?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL Serverにおける小数部の0...
-
16進数を10進数に変換する方法...
-
C言語のうるう年に関するプログ...
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
エクセルvbaで、別シートの最下...
-
Excelで指定した日付から過去の...
-
VB.NETで DataRow()を利用して...
-
特定のセルが空白だったら、そ...
-
特定の文字を条件に行挿入とそ...
-
Accessのクエリで、replace関数...
-
【VBA】シート上の複数のチェッ...
-
テキストボックスのvalueとtext...
-
表にフィルターをかけ、絞った...
-
任意フォルダから画像をすべて...
-
エクセルで、絶対値の平均を算...
-
複数ユーザが同一データを同時...
-
count(*)で取得した値をJAVAの...
-
ACCESSテーブルを RecordSet以...
-
UNICODE文字が含まれているかの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL Serverにおける小数部の0...
-
\\に変換させるには
-
ある条件の時だけ色を変更したい
-
C言語のうるう年に関するプログ...
-
うるう年を求めるプログラム
-
予測変換するフリーエディタ
-
万年暦の作り方
-
16進数を10進数に変換する方法...
-
和暦から西暦変換(C#)
-
Request.QueryStringの型について
-
ユリウス日から和暦(江戸時代...
-
進数変換のプログラムタイトル...
-
西暦を入力して、うるう年かど...
-
ExcelVBAを使って、値...
-
テキストボックスのvalueとtext...
-
Accessのクエリで、replace関数...
-
VB.NETで DataRow()を利用して...
-
特定のセルが空白だったら、そ...
-
エクセルで、絶対値の平均を算...
-
PHP8でWarning:Undefined varia...
おすすめ情報