30/09/2018, 16:22

Cách giải quyết bài toán min, max trong mảng hai chiều?

Mọi người giúp em với ạ, em tìm ra được max trên từng dòng, nhưng k bk cách in chúng ra thành mảng 1 chiều ( nếu em dùng kiểu tìm được max đó rồi in nó ra, sau đó là 1 dấu khoảng trắng, rồi tiếp tục tìm như thế , vậy có gọi là 1 chiều k). Rồi k bk cách lưu chúng lại rồi so sánh thệ nào ạ @@

Nguyễn Hữu Điền viết 18:39 ngày 30/09/2018

In ra như thế không được coi là mảng 1 chiều nhé, như thế chỉ là 1 dãy số đơn lẻ không phải thuộc cùng 1 mảng. Bạn cần lưu những giá trị MAX đó vào 1 mảng nào đó.
Bước 1: Bạn khai báo mảng c[số dòng ma trận] và ban đầu k=0
Bước 3: Dùng vòng lặp tìm được MAX hàng đầu tiên thì b[k] = MAX
Bước 4: Tăng k lên 1 đơn vị (k++)
Bước 5: Quay lại bước 3 đến khi duyệt hết vòng lặp
Bước 6: Dùng vòng lặp tìm MIN của mảng b

Nguyễn Hữu Điền viết 18:24 ngày 30/09/2018

Đoạn code dùng mảng lưu lại các giá trị MAX tìm được, bạn tham khảo nhé: http://codepad.org/145oh1FU
Mình không tìm thấy nút đưa code vào thẻ, bạn xem qua codepad nhé

BaoLe viết 18:25 ngày 30/09/2018

Mới nghĩ ra ,bạn xem thử đã đúng chưa?

void timMinMaxTrenDong(int mangHaiChieu[][5],int soHang, int soCot){
    int mang_tam[100];
    for(int i=0;i<soHang;i++){
        int max1=0;
        for(int j=0;j<soCot;j++){
            if(mangHaiChieu[i][j]>max1)
                max1=mangHaiChieu[i][j];
        }
        mang_tam[i]=max1;
    }
    int max1=0;
    for(int i=0;i<soHang;i++){
            printf("Phan tu lon nhat cua dong %d co gia tri bang %d.\n",i+1,mang_tam[i]);
        if(mang_tam[i]>max1)
            max1=mang_tam[i];
    }
    printf("Phan tu lon nhat tren cac dong co gia tri bang %d.\n",max1);
}
Andy viết 18:26 ngày 30/09/2018

Cảm ơn mọi người nhiều nhé, mình đã làm dc xD

Bài liên quan
0