30/09/2018, 18:22

lỗi khi tạo mảng 2 chiều

đề bài: viết chương trình nhập 1 mảng thực cấp không quá 20x20, và tìm giá trị lớn nhất trong mảng…
lúc đầu em dùng hàm srand() (vì nếu nhập từng con số 1 thì mỏi tay quá) nhưng nó xuất ra các hàng toàn là những con số giống nhau. và sau gần 1 giờ sợt trên google thì cũng kiếm ra hàm sleep() để dừng chương trình trong vài giây… đây là bài code của em:

#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;
void sleep( time_t delay ) {
    time_t timer0, timer1;
    time( &timer0 );
    do {
        time( &timer1 );
    } while (( timer1 - timer0 ) < delay );
}

int main() {
    int hang, cot;

    do {
        cout << "nhap so hang cua mang: ";
        cin >> hang;
        cout << "nhap so cot cua mang: ";
        cin >> cot;
    } while (hang > 20 || cot > 20);
    int **mang2chieu = new int*[hang];
    for (int i = 0; i < hang; ++i) {
        mang2chieu[i] = new int[cot];
    }
    srand(time(0));
    for (int i = 0; i < hang; i++) {

        for (int j = 0; j < cot; j++) {
            *mang2chieu[j] = rand() % 101;
        }
        sleep(2);
    }

    cout << "
cac phan tu cua mang 2 chieu truoc khi sap xep la:
";
    for (int i = 0; i < hang; i++) {
        for (int j = 0; j < cot; j++) {
            cout<< *mang2chieu[j]<<"	";
        }
        cout << endl;
    }

    for (int i = 0; i < hang; ++i) {
        delete[] mang2chieu[i];
    }
    delete[] mang2chieu;
    system("pause");
    return 0;
}

và đây là lỗi của nó…


em nghĩ hoài mà vẫn không ra nó bị lỗi gì…mấy anh (chị) có thể giúp em sửa lỗi này được không?

X viết 20:30 ngày 30/09/2018

mang2chieu[i] là 1 chiều chứ không phải 2 chiều.

Văn Dương viết 20:24 ngày 30/09/2018

Tại sao trong vòng for khởi tạo và xóa mảng 2 chiều lại là ++i mà không phải i++.

Bài liên quan
0