

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ランキング
-
Vba Replace関数について教えて...
-
CSSが全く分かりません、お助け...
-
CPUが16bitでも32bitOSでコンパ...
-
最初に聞かれたこと
-
DLLファイルの逆コンパイラにつ...
-
C言語 関数、変数の宣言について
-
C言語でファクト関数を使わずに...
-
あってる
-
DNCL(共テ用プログラミング言語...
-
バッチファイルで以下のような...
-
visual studio 2022でのC#プロ...
-
プログラミングc++を全く分か...
-
DNCL(共テ用プログラミング言語...
-
C言語 配列と関数の練習問題
-
gccを行ってもexeファイルが生...
-
c言語
-
VisualStudio2022でC言語プログ...
-
ストリームについて。
-
Cのオブジェクトファイルの逆ア...
-
Windows Formアプリからコンソ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL Serverにおける小数部の0...
-
16進数を10進数に変換する方法...
-
閏年自動判定
-
C言語のうるう年に関するプログ...
-
日付と曜日から、1週間前(7...
-
エクセルのカレンダー
-
\\に変換させるには
-
VB.NETで DataRow()を利用して...
-
Accessのクエリで、replace関数...
-
テキストボックスのvalueとtext...
-
ExcelVBAを使って、値...
-
エクセルで、絶対値の平均を算...
-
PHP8でWarning:Undefined varia...
-
[エクセル]連続する指定範囲か...
-
特定のセルが空白だったら、そ...
-
Excelで指定した日付から過去の...
-
VBA実行後に元のセルに戻りたい
-
表にフィルターをかけ、絞った...
-
i=cells(Rows.Count, 1)とi=cel...
-
ExcelのINDEXとMATCH関数でスピ...
おすすめ情報