[C言語] printfで配列の値を表示する方法を解説


C言語で配列の値を表示するには、printf関数を使用します。

配列の各要素を表示するためには、ループを用いて配列のインデックスを順に指定し、printfのフォーマット指定子を使って出力します。

例えば、整数型の配列の場合、%dを使用し、文字型の配列(文字列)の場合は%sを使用します。

この方法により、配列の各要素を個別に表示することが可能です。

この記事でわかること
  • 配列の宣言と初期化方法
  • printfを使った配列要素の表示方法
  • ループを用いた配列の全要素表示
  • 多次元配列や文字列配列の表示方法
  • 配列の応用的な表示テクニック

目次から探す

配列の値を表示する方法

配列の初期化と宣言

C言語で配列を使用するには、まず配列の宣言と初期化を行います。

以下に基本的な配列の宣言と初期化の例を示します。

#include <stdio.h>
int main() {
    // 整数型の配列を宣言し、初期化
    int numbers[5] = {10, 20, 30, 40, 50};
    // 文字型の配列を宣言し、初期化
    char letters[3] = {'A', 'B', 'C'};
    return 0;
}

この例では、numbersという名前の整数型の配列と、lettersという名前の文字型の配列を宣言し、それぞれ初期化しています。

printfで配列の要素を表示する

printf関数を使って配列の要素を表示することができます。

以下に具体的な例を示します。

#include <stdio.h>
int main() {
    int numbers[5] = {10, 20, 30, 40, 50};
    // 配列の特定の要素を表示
    printf("numbers[0] = %d\n", numbers[0]);
    printf("numbers[1] = %d\n", numbers[1]);
    return 0;
}

このコードでは、numbers配列の0番目と1番目の要素を表示しています。

ループを使った配列の全要素表示

配列の全要素を表示するには、ループを使用するのが一般的です。

以下にforループを使った例を示します。

#include <stdio.h>
int main() {
    int numbers[5] = {10, 20, 30, 40, 50};
    // ループを使って配列の全要素を表示
    for (int i = 0; i < 5; i++) {
        printf("numbers[%d] = %d\n", i, numbers[i]);
    }
    return 0;
}

この例では、forループを使ってnumbers配列の全要素を順番に表示しています。

配列のサイズを取得する方法

配列のサイズを取得するには、sizeof演算子を使用します。

以下にその方法を示します。

#include <stdio.h>
int main() {
    int numbers[5] = {10, 20, 30, 40, 50};
    // 配列のサイズを取得
    int size = sizeof(numbers) / sizeof(numbers[0]);
    printf("配列のサイズ: %d\n", size);
    return 0;
}

このコードでは、sizeof演算子を使って配列全体のバイト数を取得し、1つの要素のバイト数で割ることで配列の要素数を計算しています。

これにより、配列のサイズを動的に取得することができます。

文字列配列の表示

文字列配列の宣言と初期化

C言語で文字列を扱う場合、文字列は文字の配列として表現されます。

文字列配列を宣言し、初期化する方法を以下に示します。

#include <stdio.h>
int main() {
    // 文字列配列の宣言と初期化
    char *fruits[3] = {"Apple", "Banana", "Cherry"};
    return 0;
}

この例では、fruitsという名前の文字列配列を宣言し、3つの文字列を初期化しています。

各要素は文字列へのポインタとして扱われます。

printfで文字列配列を表示する

printf関数を使って文字列配列の要素を表示することができます。

以下に具体的な例を示します。

#include <stdio.h>
int main() {
    char *fruits[3] = {"Apple", "Banana", "Cherry"};
    // 配列の特定の要素を表示
    printf("fruits[0] = %s\n", fruits[0]);
    printf("fruits[1] = %s\n", fruits[1]);
    return 0;
}

このコードでは、fruits配列の0番目と1番目の要素を表示しています。

%sフォーマット指定子を使用して文字列を表示します。

文字列配列の全要素をループで表示

文字列配列の全要素を表示するには、ループを使用するのが一般的です。

以下にforループを使った例を示します。

#include <stdio.h>
int main() {
    char *fruits[3] = {"Apple", "Banana", "Cherry"};
    // ループを使って配列の全要素を表示
    for (int i = 0; i < 3; i++) {
        printf("fruits[%d] = %s\n", i, fruits[i]);
    }
    return 0;
}

この例では、forループを使ってfruits配列の全要素を順番に表示しています。

ループを使用することで、配列の要素数が増えても簡単に全要素を表示することができます。

多次元配列の表示

多次元配列の基本

多次元配列は、配列の中に配列を持つ構造で、特に2次元配列は行列のようにデータを格納するのに便利です。

以下に2次元配列の宣言と初期化の例を示します。

#include <stdio.h>
int main() {
    // 2次元配列の宣言と初期化
    int matrix[2][3] = {
        {1, 2, 3},
        {4, 5, 6}
    };
    return 0;
}

この例では、matrixという名前の2次元配列を宣言し、2行3列の整数を初期化しています。

printfで多次元配列の要素を表示する

printf関数を使って多次元配列の特定の要素を表示することができます。

以下に具体的な例を示します。

#include <stdio.h>
int main() {
    int matrix[2][3] = {
        {1, 2, 3},
        {4, 5, 6}
    };
    // 多次元配列の特定の要素を表示
    printf("matrix[0][0] = %d\n", matrix[0][0]);
    printf("matrix[1][2] = %d\n", matrix[1][2]);
    return 0;
}

このコードでは、matrix配列の(0,0)と(1,2)の要素を表示しています。

ループを使った多次元配列の全要素表示

多次元配列の全要素を表示するには、ネストされたループを使用します。

以下にforループを使った例を示します。

#include <stdio.h>
int main() {
    int matrix[2][3] = {
        {1, 2, 3},
        {4, 5, 6}
    };
    // ループを使って多次元配列の全要素を表示
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            printf("matrix[%d][%d] = %d\n", i, j, matrix[i][j]);
        }
    }
    return 0;
}

この例では、外側のforループで行を、内側のforループで列を走査し、matrix配列の全要素を順番に表示しています。

ネストされたループを使用することで、任意の次元の配列を効率的に処理することができます。

応用例

配列の要素をフォーマットして表示する

配列の要素をフォーマットして表示することで、見やすく整形された出力を得ることができます。

以下に、数値をフォーマットして表示する例を示します。

#include <stdio.h>
int main() {
    int numbers[5] = {10, 20, 30, 40, 50};
    // 配列の要素をフォーマットして表示
    for (int i = 0; i < 5; i++) {
        printf("Element %d: %04d\n", i, numbers[i]);
    }
    return 0;
}

この例では、各要素を4桁のゼロパディングで表示しています。

%04dを使用することで、数値が4桁になるようにゼロで埋められます。

配列の一部を表示する方法

配列の一部だけを表示したい場合、特定の範囲を指定して表示することができます。

以下にその方法を示します。

#include <stdio.h>
int main() {
    int numbers[5] = {10, 20, 30, 40, 50};
    // 配列の一部を表示
    for (int i = 1; i < 4; i++) {
        printf("numbers[%d] = %d\n", i, numbers[i]);
    }
    return 0;
}

このコードでは、numbers配列の1番目から3番目の要素を表示しています。

配列の要素を逆順に表示する

配列の要素を逆順に表示するには、ループのインデックスを逆に設定します。

以下にその例を示します。

#include <stdio.h>
int main() {
    int numbers[5] = {10, 20, 30, 40, 50};
    // 配列の要素を逆順に表示
    for (int i = 4; i >= 0; i--) {
        printf("numbers[%d] = %d\n", i, numbers[i]);
    }
    return 0;
}

この例では、forループのインデックスを4から0に減少させることで、numbers配列の要素を逆順に表示しています。

配列の要素を条件付きで表示する

配列の要素を条件付きで表示するには、if文を使用して条件を指定します。

以下にその例を示します。

#include <stdio.h>
int main() {
    int numbers[5] = {10, 20, 30, 40, 50};
    // 配列の要素を条件付きで表示
    for (int i = 0; i < 5; i++) {
        if (numbers[i] > 25) {
            printf("numbers[%d] = %d\n", i, numbers[i]);
        }
    }
    return 0;
}

このコードでは、numbers配列の要素のうち、25より大きい要素のみを表示しています。

条件を変更することで、さまざまなフィルタリングが可能です。

よくある質問

printfで配列のサイズを表示できますか?

printf関数自体では配列のサイズを直接表示することはできませんが、sizeof演算子を使って配列のサイズを計算し、その結果をprintfで表示することができます。

例:printf("配列のサイズ: %d\n", sizeof(array) / sizeof(array[0]));のように記述します。

配列の要素を表示する際にエラーが出るのはなぜですか?

配列の要素を表示する際にエラーが出る原因としては、以下のようなものがあります。

  • 配列のインデックスが範囲外になっている。
  • 配列が正しく初期化されていない。
  • printfのフォーマット指定子がデータ型に合っていない。

これらの点を確認し、コードを修正することでエラーを解消できます。

文字列配列と数値配列の表示方法はどう違いますか?

文字列配列と数値配列の表示方法の違いは、printfのフォーマット指定子にあります。

文字列配列の場合は%sを使用し、数値配列の場合は%d%fなど、数値の型に応じた指定子を使用します。

また、文字列配列は文字列へのポインタとして扱われるため、配列の各要素を表示する際にポインタを使用することが一般的です。

まとめ

配列の表示方法について、基本から応用まで幅広く学ぶことができました。

配列の初期化、要素の表示、フォーマット、条件付き表示など、さまざまなテクニックを理解することで、C言語での配列操作がより効率的になります。

この記事を参考に、実際のプログラムで配列を活用してみてください。

当サイトはリンクフリーです。出典元を明記していただければ、ご自由に引用していただいて構いません。

関連カテゴリーから探す

  • 標準入出力 (47)
  • URLをコピーしました!
目次から探す