プログラミングC: 投稿 9 – Cでの配列

Cの配列について学ぶ前に, 我々は、例えば開口部をやろう.

1. 例えば、開口部

例エントリを考えてみましょう 5 整数, 画面に出力 5 ラインと合計でその中でも 5 これ.

// e.g about array - code by nguyenvanquan7826
#include <stdio.h>

int main() 
{
    int a, b, c, d, e; // 5 bien

    printf("Nhap a = ");
    scanf("%d", &a);

    printf("Nhap b = ");
    scanf("%d", &b);

    printf("Nhap c = ");
    scanf("%d", &c);

    printf("Nhap d = ");
    scanf("%d", &d);

    printf("Nhap e = ");
    scanf("%d", &e);

    int tong  = a + b + c + d + e;
    printf("Tong cua %d + %d + %d + %d + %d = %d \n", a, b, c, d, e, tong);

    return 0;
}

結果:

Nhap = 3
NhapのB = 5
NhapのC = 3
Nhapさd = 6
Nhap電子= 1
トンのカニ 3 + 5 + 3 + 6 + 1 = 18

例として、私たちはすべての入力を参照してください 5 と我々はいくつかの画面は非常に難しいと思わ作られ、我々はあまりにも多くの変数を使用する必要がありました, もし私たちではない変数の数 5 すなわち 50, 500,...その後、この結果は非常に困難である. これを改善するために、我々は配列を使う.

同じタイプのデータを持つ配列要素のセット. 配列の配列 1 夜, 2 夜,...そして、データの各種類がある 1 対応する配列 (整数配列, 実数配列, 文字配列 (チェーン)),...私は主に配列を検討 1 次元配列 2 夜.

今、私たちは、配列の使用例を解決します 1 夜.

2. 配列 1 夜

2.1 例の概要

あなたが読んで、このプログラムを実行しようとしています, その後、下記の詳細を参照してください。.

// e.g about array - code by nguyenvanquan7826
#include <stdio.h>

int main() 
{
    // khai bao mang a co n phan tu
    int n = 5, i, s = 0;
    int a[n];

    // thuc hien nhap tung phan tu mang
    for (i = 0; i < n; i++) 
    {
        printf("Nhap a[%d] = ", i);
        scanf("%d", &a[i]);
    }

    // thuc hien in cac phan tu cua mang ra man hinh
    printf("\nMang da nhap \n");
    for (i = 0; i < n; i++) 
    {
        printf ("%d \t", a[i]);
    }

    // tinh tong cac so trong mang
    for (i = 0; i < n; i++) 
    {
        s += a[i]; // s = s + a[i]
    }
    printf("\nTong cac so trong mang: %d\n", s);

    return 0;
}

インポートA[0] = 3
インポートA[1] = 4
インポートA[2] = 6
インポートA[3] = 2
インポートA[4] = 7
持参入力された
3 4 6 2 7
帳簿価額の合計: 22

2.2 配列を宣言する方法 1 夜

KieuDuLieu TenMang [SoPhanTu];

最高経営責任者(CEO: int a[10];

配列 1 午後は含ま 10 整数型の要素. 持って宣言した後 1 配列は次のようになります:

配列 1 夜

で配列を宣言 10 要素

2.3 配列内の要素にアクセスする方法

配列が宣言された後、, 配列の各要素は、参照インデックス用です. インデックスはから始まる 0 n-1個の (ここで、nは、配列のサイズは). 上記の例で, 私は、配列を宣言 10 要素は、インデックスの開始 0 へ 9.
そして、我々は構文を介してアクセス: TenMang[ChiSo]

配列 1 夜

C言語で配列を取得する

2.4 配列の要素をインポートし、エクスポートする方法

私たちは、配列の各要素を参照する必要が配列内の要素のデータを入力し、ループを入力するに進みます

for (i = 0; i < n; i++) 
{
    printf("Nhap a[%d] = ", i);
    scanf("%d", &a[i]);
}

配列の要素の出版物も、同様に行われている:

for (i = 0; i < n; i++) 
{
    printf ("%d \t", a[i]);
}

2.5 関数を用いて出力配列を入力

多くの問題では、, 私たちは、複数のアレイを入力する必要が, と出力を複数回, 一方のは、簡単に入力して使用するための機能に広告を出そう.

// e.g about array - code by nguyenvanquan7826
#include <stdio.h>

void nhapMang(int a[], int n) 
{
    int i;
    // thuc hien nhap tung phan tu mang
    for (i = 0; i < n; i++) {
        printf("Nhap a[%d] = ", i);
        scanf("%d", &a[i]);
    }
}

void xuatMang(int a[], int n) 
{
    int i;
    for (i = 0; i < n; i++) {
        printf ("%d \t", a[i]);
    }
}

int main() 
{
    // khai bao mang a co n phan tu
    int n = 5;
    int a[n];
    nhapMang(a, n);
    xuatMang(a, n);

    return 0;
}

注意: との関係の配列 1 ポインタ, 配列としてそう 1 アレイ内の任意の変更がある場合は、配列の要素が影響を受ける関数に渡された配列へのポインタ.

2.6 いくつかのその他の注意事項

配列を初期化: 私たちはすぐに宣言で配列を初期化することができます. 最高経営責任者(CEO: float a [5] = {3.4, 5, 6, 7, 4,2}
我々は初期化す​​る場合は、この初期化を超えて 5 要素はエラーを報告します, 任意の要素なしでの値である要素です 0.
最高経営責任者(CEO: float a [5] = {3.4, 5, 7} => a[4] = 0.
最高経営責任者(CEO: float a [5] = {3.4, 5, 7, 1, 2, 3} =>マシンエラー.
また、我々は、配列の前に未知の数を宣言し、初期化する必要が.
最高経営責任者(CEO: int a[] = {3,6,2,5} =>配列を持つ 4 要素に対応する値を受信する.
または: int a[]; =>関数形のパラメータとして配列を使用する際にしばしば使用される.

3. 配列 2 夜

私たちは、マトリックスとしてそれを考慮することができます. 自然, 宣言, インポート、エクスポート,...類似配列 1 夜.

KieuDuLieu TenMang [SoHang][SoCot];

VDレポート: int a[5][10]; =>アレイ合成 5 商品や 10 ポスト (各行 10 要素).

配列 1 夜

配列 2 Cでの方法

// e.g about array - code by nguyenvanquan7826
#include <stdio.h>
#define MAX 10

// nhap mang n hang, m cot
void nhapMang(int a[MAX][MAX], int n, int m) 
{
    int i, j;
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            printf("Nhap a[%d][%d] = ", i, j);
            scanf("%d", &a[i][j]);
        }
    }
}

// xuat mang n hang, m cot
void xuatMang(int a[MAX][MAX], int n, int m) 
{
    int i, j;
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            printf ("%-3d", a[i][j]);
        }
        printf("\n"); // xuong dong khi het 1 dong
    }
}

int main() 
{
    // khai bao mang a co n phan tu
    int n = 2, m = 3;
    int a[MAX][MAX];
    nhapMang(a, n, m);
    xuatMang(a, n, m);

    return 0;
}

注目: メモリの本質, 配列の要素 2 夜 (と多次元配列) 多くの配列として開催される 1 連続した二次元, 私たちは、配列を提供することができ 2 次元のプラーク 1 夜.

chap9-LUU-TRU-クマ-2-PM-で-c.png

配列 1 夜

組織, ストレージアレイ 2 Cでの方法

エクササイズ

  1. 配列に入力します。, 配列内の最大と最小の番号が入力された見つけます.
  2. 一連の数字を入力します。, 最大の場所をプリントアウト (複数の場所を持つことができます).
  3. 降水量のシーケンスを入力すると、年にカ月連続で. 月の平均降雨量よりも月の降水量のお知らせ.
  4. 一連の数字を入力します。, 昇順にソートして印刷.
  5. 行列に入りました (プレート 2 夜). 行列の各列の和を印刷.