10/14/13

Mảng 2 chiều trong C

Hôm nay tự dưng có đứa bạn hỏi về cái này, lâu không đụng, quên hết cả, loay hoay 1 lúc mới xong!!! Note lại cho nhớ...
Code:

 1
 2
 3
 4
 5
 6
 7
 8
 9
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
#include <stdio.h>
#include <stdlib.h> //Dung ham calloc

int main(int argc, char **argv)
{
    int m, n; //Kich thuoc hang va cot
    printf("Nhap m va n: ");
    scanf("%d %d", &m, &n);

    // Cap phat bo nho cho mang 2 chieu
    int i, j;
    double** a = (double**)calloc(m, sizeof(double));
    for (i = 0; i < m; ++i)
        a[i] = (double*)calloc(n, sizeof(double));

    // Nhap cac phan tu cho mang 2 chieu
    for (i = 0; i < m; ++i)
        for (j = 0; j < n; ++j)
        {
            printf("a[%d][%d] = ", i, j);
            scanf("%lf", &a[i][j]);
        }

    // In ra cac phan tu trong mang
    for (i = 0; i < m; ++i)
        for (j = 0; j < n; ++j)
            printf("%lf ", a[i][j]);


    // Tinh toan xong thi giai phong bo nho
    for (i = 0; i < m; ++i)
        free(a[i]);
    free(a);
    return 0;
}

No comments :

Post a Comment