質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

1回答

3211閲覧

if文

mitan

総合スコア27

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2016/08/29 09:11

int main(void)
{

int a; printf("今は何月?"); scanf("%d",&a); if (12 > a>10) { printf("冬"); } else if (9 > a > 5) { printf("natu"); } else if (4 > a > 1) { printf("haru"); } return 0;

}

月を入力して、その季節がなんなのかを出力するプログラムを作りたいのですが、入力して季節の出力が出てきません。どうしたらいいのでしょうか?

あと、Visual studio で入力の際に上書きモードのようになってしまっているのですが、どうしたら治りますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

PineMatsu

2016/08/29 09:22

コードは、</>ボタンをクリックして```~```の間のブロックに書いてください。
guest

回答1

0

ベストアンサー

比較演算子は連続して書くこと(12 > a > 10)は出来ません。次のように分かち書きしてください

C

1if (12 > a && a > 10)

ただ、このように書き直したとしても、この判断では11,8,7,6,3,2月だけしか判断してないので、1月や5月などは何も表示されません。(分かりますか?)
まずは、全ての月(1~12)をどの季節に割り当てるのかを考え、それぞれどのような比較をすれば良いのかを考えてください。

Visual Studioで挿入モードにするには、Insキーを押してください。トグルになってるので押す度に切り替わります。(画面の下に「挿入」「上書き」が交互に表示されるはずです)

投稿2016/08/29 09:21

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mitan

2016/08/29 09:33

2つともありがとうございました!
PineMatsu

2016/08/29 09:37

ちなみに if (12 > a > 10) と書いてもエラーにはなりません。どういうことかというと、まず 12 > a が評価されそれがtrue(1)またはfalse(0)で返されます。それを (return値) > 10で比較する、という処理になるからです。12 > a はtrue/falseのどちらかですが、true(1) > 10 , false(0) > 10はどちらもfalseになるため if文は常に失敗して次の else ifに進むことになります。なお、VC++がtrue=1,false=0と処理していたらということが前提です。falseはどの処理系でも0ですが、trueは0でない数値として扱われるので、内部では-1かも知れません。内部がどういう値にしろこの場合は全てのifで失敗することになりますが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問