C言語で三角形を作成する際、ユーザー入力に応じて段数を制御したり、ピラミッド型で表示する方法はよくある学習課題です。今回は、2〜10段の入力制限、エラー処理、ピラミッド型の出力を含むプログラム例を解説します。
ユーザー入力の制御とエラー処理
まず、段数を入力する際に2未満や10より大きい値を防ぐため、whileループを使って正しい値が入力されるまで繰り返します。
例えば、
int n;
do { printf("段数を入力してください(2〜10): "); scanf("%d", &n); if(n<2 || n>10) printf("段数は2から10の数字で入力してください\n"); } while(n<2 || n>10);
このようにすることで、誤った入力時にはエラーメッセージを表示し、正しい値が入力されるまでループします。
三角形をピラミッド型で表示するループ構造
三角形を作成するには、3重のforループを使います。1つ目は行数、2つ目は空白、3つ目は*やその他の文字を出力します。
例:
for(int i=1; i<=n; i++){ for(int j=1; j<=n-i; j++) printf(" "); for(int k=1; k<=2*i-1; k++) printf("*"); printf("\n"); }
この例では、行ごとに空白を減らし、*を増やすことでピラミッド型になります。ユーザー入力に基づいて段数を調整できるため、柔軟に段数を変更可能です。
具体例:2〜10段のピラミッド表示
段数3の場合の出力例:
*
***
*****
段数5の場合の出力例:
*
***
*****
*******
*********
このように、段数を変えても自動で整形されることがポイントです。
フローチャートによる流れ図
フローチャートの概要:
- 開始
- 段数入力
- 入力が2〜10の範囲か判定
- 範囲外ならエラーメッセージを表示して再入力
- 正しい場合、行ループ開始
- 空白ループ
- 文字ループ
- 改行
- 終了
まとめ
C言語でのピラミッド型三角形作成では、ユーザー入力のバリデーションとforループを組み合わせることが重要です。whileループで入力制御、3重forループで形状を制御することで、自由に段数を指定して美しいピラミッドを表示できます。フローチャートを確認しながらプログラムを書くと、ロジックの理解が深まります。


コメント