- ベストアンサー
教えてください!
段数を入力して*を使って直角三角形を表示するプログラミングで 段数が1~9までで、それ以外の場合はエラーメッセージを出力するするにはどうしたらいいですか? 制御分はfor文で。 直角三角形は出力出来るんですが、それ以外のエラーメッセージの出力方法がわかりません。 お願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
scanfのあとにlnが正しい範囲にはいっているか判定するコードを入れましょう。 こんな感じ? if (ln<1 || 9<ln) { えらー処理 } else { ただしい処理 }
その他の回答 (4)
- arain
- ベストアンサー率27% (292/1049)
No.1です。 すでに、No.4までで回答が出ていますが、言えることは 「条件文(if文)勉強しましょう」 ということです。 ついでに、この際だからswitsh文のことも勉強しておきましょう。
- asuncion
- ベストアンサー率33% (2127/6289)
もうちょっとまともなタイトルを付けましょう。 入力した段数の値をif文で判定して、1~9の範囲にあれば三角形を出力し、 それ以外(つまりelseってこと)の場合はエラーメッセージを出力する。 以上です。
- Tacosan
- ベストアンサー率23% (3656/15482)
「直角三角形は出力出来るんですが」 ということなので, 「直角三角形」をどのように出力しているのか, そのコードを示すとともに「どのような動作をしているのか」きっちりと説明してもらえませんか?
- arain
- ベストアンサー率27% (292/1049)
>段数が1~9までで、それ以外の場合はエラーメッセージを出力 そのままですよ。 入力した数値が1~9までの範囲になければエラーメッセージを表示するだけ。 >直角三角形は出力出来るんですが、それ以外のエラーメッセージの出力方法がわかりません。 「*」が表示できるのに、なぜエラーメッセージが表示できないのか理解に苦しみますが。 ひっょとして、printf()を使用し内で別の表示をしている?
補足
#include <stdio.h> int main(void) { int i, j, ln; printf("何段ですか? /n"); sanf("%d", &ln); for(i = 1; i <= ln; i++) { for (j = 0; j <= ln-i; j++) { putchar('*'); } putchar('/n') } return(0); } としたところ、 何段ですか? 4 **** *** ** * となります。 これを 何段ですか? 12 表示できません。 というふうにしたいのですが。 よろしくお願いします。