01/10/2018, 13:25

Mong anh chi giải thích dùm em cấu trúc lặp trong đoạn code này ạ

int s = 0;
for(int i=0; i<m; i++) {
    s = s + a[0][i];
    for(int i=1; i<n; i++) {
        s = s + a[i][0];
        for(int i=1; i<m; i++) {
            s = s + a[n-1][i];
            for(int i=1; i<n-1; i++) {
                s = s + a[i][m-1];
                printf("
s=%d", s);
            }
        }
    }
}

Đoạn code này tính tổng các biên của mảng
Ví dụ cho đoạn input
4 5
1 5 6 8 9
2 3 4 5 6
13 11 7 10 12
101 9 16 8 3
em chỉ biết rằng

for(int i=0;i<m;i++)
        s=s+a[0][i];

là 1 5 6 8 vì code thử từng vòng lặp chứ không hiểu tại sao là a[0][i] và xuất phát từ i=0
mấy vòng lặp sau em cũng ko hiểu tương tự ạ

rogp10 viết 15:40 ngày 01/10/2018

Code này tính tổng phần tử ở viền theo thứ tự trên - trái - dưới - phải và cũng dễ lỗi nữa. Mình thì mình sẽ cộng theo từng dòng.

Từ Liên viết 15:29 ngày 01/10/2018

cái này ở biên mà sao cộng từng dòng đc bạn

rogp10 viết 15:27 ngày 01/10/2018

Vậy viền trái phải gồm các phần tử nào?

Từ Liên viết 15:32 ngày 01/10/2018

Viền trái là: 2
13
101
Viền phải là 6
12
Nếu bạn hiểu vòng lặp tại sao lại code như vậy thì giải thích giúp mình nha

rogp10 viết 15:39 ngày 01/10/2018

Nếu bạn hiểu vòng lặp tại sao lại code như vậy thì giải thích giúp mình nha

Mình đang hỏi chỉ số ấy

Tâm Ninja viết 15:26 ngày 01/10/2018

Code này compile cũng vẫn chạy hả bạn?

Bài liên quan
0