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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル365の関数。誕生日表記がおかしい 2 2022/10/17 18:52
- Excel(エクセル) Excelで、昭和の西暦換算 6 2023/03/23 11:29
- 日本語 「2025年」のことを何と言いますか? 「2025年」=「西暦年」ではないので西暦年のひとつですか? 6 2022/05/07 16:18
- C言語・C++・C# C言語のwhileを使ってプログラムを組みたいです!自分でやってみたのですが答えが合わないので教えて 3 2022/06/30 18:08
- 数学 少子化が進み産まれる子数が減りました。 これは、未来にて大人の数が減ることを示しています。 その子等 2 2022/12/24 15:24
- 人類学・考古学 今の世の中は西暦をよく使いますが、西暦を数え始めたのはイエス・キリストの生まれた頃からずっと数え続け 2 2023/06/18 15:49
- Excel(エクセル) EXCEL 和暦を西暦に変換する方法について 4 2023/03/02 20:57
- 歴史学 《西暦》とは? 『西暦』を分類するなら紀年法でいいんですか? 異世界アニメでも、その世界でどれだけ年 3 2023/05/26 02:04
- Excel(エクセル) Excel 年月日を元号・年・月・日に分けるには? 2 2023/01/05 16:40
- アニメ 紀年法とは? 地球の西暦を分類すると《紀年法》になりますか? 架空の世界のアニメでその世界でどれだけ 4 2023/05/26 02:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数値を通貨型に変換して(1000...
-
SQL Serverにおける小数部の0...
-
16進数を10進数に変換する方法...
-
特定のセルが空白だったら、そ...
-
ExcelVBAを使って、値...
-
テキストボックスのvalueとtext...
-
【Excel VBA】指定行以降をクリ...
-
Accessのクエリで、replace関数...
-
表にフィルターをかけ、絞った...
-
count(*)で取得した値をJAVAの...
-
エクセルで、絶対値の平均を算...
-
Excelのセルの色指定をVBAから...
-
エクセルVBAでコピーして順...
-
i=cells(Rows.Count, 1)とi=cel...
-
VB.NETで DataRow()を利用して...
-
ExcelのINDEXとMATCH関数でスピ...
-
VBA:小数点以下の数字を取得で...
-
【VBA】指定したセルと同じ値で...
-
Excelで指定した日付から過去の...
-
【Excel VBA】先頭の「0」飛び...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL Serverにおける小数部の0...
-
16進数を10進数に変換する方法...
-
C言語のうるう年に関するプログ...
-
うるう年を求めるプログラム
-
日付と曜日から、1週間前(7...
-
Request.QueryStringの型について
-
万年暦の作り方
-
閏年が何個含まれるか求めるプ...
-
36進数
-
エクセルのカレンダー
-
プログラミング
-
和暦→西暦(有効範囲を考慮)
-
西暦と年号の変換プログラム
-
西暦を入力して、うるう年かど...
-
閏年のフローチャートについて
-
グレースケール表示するツール...
-
VB2008で西暦を和暦に変換...
-
和暦から西暦変換(C#)
-
進数変換のプログラムタイトル...
-
閏年自動判定
おすすめ情報