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

3×3の2次元配列で下三角要素のみを表示するC言語プログラム

はじめに

実行時にキーボードから3×3行列(合計9個の要素)を2次元配列へ入力します。この入力値とforループを組み合わせることで、3×3行列の下三角部分のみを表示することが可能です。

下三角要素を表示するロジック

下三角要素を表示するための基本的な考え方は以下の通りです。

  • 行インデックス i が列インデックス j 以上( i >= j )である位置が、下三角に該当します。
  • 条件を満たす場合はその要素の値を表示し、満たさない場合は空白を出力して整形します。
for(i=0;i<3;i++){
    for(j=0;j<3;j++){
        if(i>=j) // 下三角:第1インデックス >= 第2インデックス
            printf("%d",array[i][j]);
        else
            printf(" "); // 下三角以外の場所は空白を表示
    }
    printf(" ");
}

プログラム

以下は、3×3の2次元配列における下三角要素のみを表示するC言語プログラムです。

#include<stdio.h>
int main(){
    int array[3][3],i,j;
    printf("enter 9 numbers:");
    for(i=0;i<3;i++){
        for(j=0;j<3;j++)
            scanf("%d",&array[i][j]);
    }
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            if(i>=j) // 下三角:第1インデックス >= 第2インデックス
                printf("%d",array[i][j]);
            else
                printf(" "); // 下三角以外の場所は空白を表示
        }
        printf(" ");
    }
    return 0;
}

実行結果

実行結果は以下の通りです。対角線より上側の要素が空白になり、下三角部分だけが表示されていることがわかります。

enter 9 numbers:
1 2 3
1 3 4
4 5 6
1
13
456

応用:上三角要素を表示するプログラム

同じ考え方を応用すると、3×3行列の上三角要素だけを表示するプログラムも簡単に作成できます。ポイントは、比較条件を i <= j に変更するだけという点です。

#include<stdio.h>
int main(){
    int array[3][3],i,j;
    printf("enter 9 numbers:");
    for(i=0;i<3;i++){
        for(j=0;j<3;j++)
            scanf("%d",&array[i][j]);
    }
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            if(i<=j) // 上三角
                printf("%d",array[i][j]);
            else
                printf(" "); // 下三角部分は空白を表示
        }
        printf(" ");
    }
    return 0;
}

実行結果

実行すると、以下のように対角線より上側の要素のみが出力されます。

enter 9 numbers:
2 3 4
8 9 6
1 2 3
2 3 4
  9 6
    3

まとめ

このように、行インデックスと列インデックスの大小関係を判定する条件式を変えるだけで、行列の下三角・上三角どちらの要素も自在に表示できます。条件を「 i >= j 」にすれば下三角、「 i <= j 」にすれば上三角になります。行列処理の基礎となる重要なテクニックなので、ぜひマスターしておきましょう。

  1. C++プログラム:配列内の各要素の最後の出現を相対的な順序で出力する方法

    配列 a[] が与えられたとき、リスト内の各要素について最後に出現したものだけを出力するのが本記事の目的です。ここでは単純に重複要素を削除するだけでなく、各要素が配列内で最後に出現したタイミングに基づき、元の相対的な順序を維持したまま出力する必要があります。例えば、6つの要素を持つ配列 {1, 3, 2, 3, 1, 2} には重複した値が含まれています。この場合、期待される結果は「3 1 2」になります。入力例と出力例Input: a[]={4,2,2,4,1,5,1} Output : 2 4 5 1この例では、「2」はインデックス2で最後に出現し、「4」はインデックス3、「5」はインデッ

  2. Matplotlibでヒートマップの上三角・下三角のみを表示する方法

    Matplotlibでヒートマップの上三角または下三角だけを描画したい場合、NumPyのマスク配列(masked array)を活用するのが便利です。不要な部分をマスクして画像として表示することで、相関行列などでよく見られる三角形のヒートマップを簡単に作成できます。実装の手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。5×5のランダムなデータを作成します。numpy.tri() メソッドを使い、指定した対角線以下に1、それ以外に0を持つ配列を生成します。これがマスクの元になります。生成したマスクを使って、np.ma.array() でマスク済みの2次元配列を作