Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語で数値パターンを出力するプログラムの作り方


プログラムの概要

このプログラムは、ユーザーから行数を入力してもらい、それに応じた数値パターンを画面に出力するものです。

例として、入力が「5行」の場合、次のようなパターンが出力されます。

1
6 2
10 7 3
13 11 8 4
15 14 12 9 5

一見複雑に見えるこのパターンにも、きちんとした規則性があります。各行の先頭の数値は「1、6、10、13、15」と増加幅が5→4→3→2と1ずつ減っていき、行の中でも右に進むほど差が大きくなる仕組みです。

アルゴリズム

・各行の末尾側から順にパターンを出力する
・まず各行の最後の列を確定させる
・2行目以降は後ろから2番目の列から出力を開始する
・ユーザーが指定した行数に達するまで繰り返す

サンプルコード

/* 数値パターンを出力するプログラム */
#include<stdio.h>
int main()
{
   int k, l, m, count=1;
   int rows;
   clrscr();
   printf("\n 数値パターンの行数を入力してください: ");
   scanf("%d",&rows);
   for (k = 1; k <= rows; k++) {
      m = count;
      for (l = 1; l <= k; l++) {
         printf("%d",m);
         m = m - (rows + l - k);
      }
      printf("\n");
      count = count + 1 + rows - k;
   }
   getch();
   return 0;
}

コードのポイント

count の更新: 外側のループごとに count = count + 1 + rows - k; を実行することで、次の行の先頭になる数値を求めています。k番目の行では残りの行数が減るため、増加幅も自動的に小さくなります。

行内の数値の計算: 内側のループでは m = m - (rows + l - k); により、列位置(l)に応じて差分を変えながら左方向へ数値を並べています。

注意点: clrscr()getch() はTurbo Cなど古い環境専用の関数です。GCCなどの現代的なコンパイラで動かす場合は、これらを削除するか、getchar() に置き換えてください。

実行結果

C言語で数値パターンを出力するプログラムの作り方


C言語で数値パターンを出力するプログラムの作り方


  1. 【C言語】数字パターンを出力するプログラムの作り方

    プログラムの概要 数値パターンとは、「パターンルール」と呼ばれる規則に基づいて生成された数列のことです。パターンルールでは、1つまたは複数の数学的操作を用いて、数列内の連続する数値同士の関係を表現します。 C言語では、for文による繰り返し処理を組み合わせることで、このような規則性のある数字パターンを簡単に出力できます。本記事では、代表的な2種類のパターン(三角形型とひし形型)を出力するプログラムを紹介します。 パターンの例 パターン1(三角形型) 1 2 6 3 7 10 4 8 11 13 5 9 12 14 15 パターン1では、各行の先頭の数字が行番号と一致し、隣の要素は直前の値に「

  2. Cプログラムで行列を対角パターンに沿って数値出力する方法

    この課題は、n×nの行列を対角パターンで出力することです。 例えば n が 3 の場合、対角パターンに従って行列を出力すると、次のような配置になります。 そして、実際の出力結果は以下の通りです。 実行例 Input: 3 Output: 1 2 4 3 5 7 6 8 9 Input: 4 Output: 1 2 4 7 3 5 8 11 6 9 12 14 10 13 15 16 考え方 一見すると、「数値 n を受け取り n×n の行列を生成し、それを対角方向に走査しながら別の行列へ値を格納する」というアプローチが思い浮かびます