
西暦何年かを入力し、その年がうるう年かそうでないかを
計算するプログラムを作っています。
#include <iostream>
using namespace std;
int main()
{
int toshi;
cout <<"西暦を入力してください";
cin>>toshi;
if (toshi%4==0)
{if (toshi%100==0)
{if (toshi%400==0)
{cout<<toshi<<"年はうるう年です。";}
else {cout<<toshi<<"年は非うるう年です。";}
else {cout<<toshi<<"年は非うるう年です。";}
else {cout<<toshi<<"年は非うるう年です。";}}}
return EXIT_SUCCESS;
}
これを入力したのですが エラーが2つでてしまいます。
どこがちがうのでしょうか?
No.3ベストアンサー
- 回答日時:
else文の対応の問題ですね。
上記のプログラムだと、全部のelseが三番目のif文に対応するelseになっちゃってます。
正解のソースはこちら
int toshi;
cout <<"西暦を入力してください";
cin>>toshi;
if (toshi%4==0){
if (toshi%100==0){
if (toshi%400==0){
cout<<toshi<<"年はうるう年です。";
}else{
cout<<toshi<<"年は非うるう年です。";
}
}else{
cout<<toshi<<"年は非うるう年です。";
}
}else{
cout<<toshi<<"年は非うるう年です。";
}
cin >> toshi;
return EXIT_SUCCESS;
上記のソースをよく見てくださいね。「{」の数が違うと思います。
ただ、三個もif文が重なるのは間違いの元なので、下のようにしたほうがすっきりすると思いますよ。
int toshi;
cout <<"西暦を入力してください";
cin>>toshi;
if (((toshi%4==0) && (toshi%100!=0)) ||
((toshi%4==0) && (toshi%400==0))){
cout<<toshi<<"年はうるう年です。";
}else{
cout<<toshi<<"年は非うるう年です。";
}
cin >> toshi;
return EXIT_SUCCESS;
プログラムは慣れと経験ですんで頑張ってください。
No.4
- 回答日時:
間違っている部分のみです
else {cout<<toshi<<"年は非うるう年です。";}}
else {cout<<toshi<<"年はうるう年です。";}}
else {cout<<toshi<<"年は非うるう年です。";}
に変えて再コンパイルして下さい
No.2
- 回答日時:
軽く見たところ、ロジック以外は変なところはないと思われますが。
コンパイルエラーなのでしょうか?
でしたら、どういった感じのエラーなのかや、エラーコードを乗せていただくとわかりやすいのですが?
ちなみにロジックなのですが、4で割り切れて100で割り切れないときはうるう年なので、elseの2つ目が違う気が??
coo(25) : error C2181: else 文が if と一致しません。
cpp(27) : error C2181: else 文が if と一致しません。
とでています。
どうでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- ロック・パンク・メタル 【X JAPAN】のtoshiさんは偽物感のオーラが半端ないですが初代X JAPANの 1 2023/01/18 19:10
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# プログラミングのペーパーテスト 実行結果を表示せよ #include <stdio.h> int h 1 2022/07/09 15:27
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# プログラムの時、フローチャートはどうなりますか?図でお願いします。 int main(void) { 1 2022/10/01 22:45
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- バラエティ・お笑い 【モニタリング】あなたの中では、どの人を “Toshi” さんが選ぶと思いましたか? 1 2022/04/07 21:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
visual studio 2022でのC#プロ...
-
Notepad++の関数リスト表示でC...
-
C言語について。
-
DNCL(共テ用プログラミング言語...
-
パソコン
-
gccを行ってもexeファイルが生...
-
pythonの質問です。
-
VisualStudio2022でC言語プログ...
-
C言語の関数のextern宣言
-
C#でTreeViewのCheckBoxのサイ...
-
バッチファイルで以下のような...
-
ArduinoでMouse関数を使用して...
-
c言語でイベントフラグを使った...
-
【C言語】全角文字の配列を、全...
-
Windows Formアプリからコンソ...
-
プログラマー達は何故、プログ...
-
最初に聞かれたこと
-
DNCL(共テ用プログラミング言語...
-
C# で 数式文字列処理を処理す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ランダムな単語を得るAPIってあ...
-
Wordで、分かち書きをするVBA ...
-
perl HTML::TreeBuilder返り値
-
perlでxmllint相当のスクリプト...
-
うるう年か平年かを判定するプ...
-
文章の分割
-
例外処理のフローチャートの記...
-
Excel VBAでリンク切れをチェッ...
-
Excel VBAで、ユーザーフォーム...
-
「デバイスは PRN を初期化でき...
-
LCD ディスプレイを Raspberry ...
-
ユーザー定義関数に#NAME?が返...
-
vba userFormのSubを標準モジュ...
-
Excel VBA 定義されたプロージ...
-
Excel VBAで、ユーザーフォー...
-
モジュールとクラスの違いって...
-
モジュールの最大数はいくつな...
-
VBAで別モジュールへの変数の受...
-
Excel VBA 『Call』で呼び出す...
-
エクセルVBAでシートモジュール...
おすすめ情報