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

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

1. 例えば、開口部

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 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 例の概要

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// 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 配列の要素をインポートし、エクスポートする方法

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

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

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

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

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

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// 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での方法

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// 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 夜). 行列の各列の和を印刷.