C言語でピラミッド型三角形を作成する方法とユーザー入力制御の例

C言語関連

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ループで形状を制御することで、自由に段数を指定して美しいピラミッドを表示できます。フローチャートを確認しながらプログラムを書くと、ロジックの理解が深まります。

コメント

タイトルとURLをコピーしました