Code dùng con trỏ hàm bị sai

Bài này em dùng con trỏ hàm sai chỗ nào ạ?

Đăng mã dạng văn bản lên đi bạn, còn một đoạn ở hàm main() nữa.

2 Likes
#include <iostream>
using namespace std;
bool findmin(int a, int b){
    return (a<b);
}
bool findmax(int a, int b){
    return (a>b);
}
int findMinMax(int a[], int n, bool (*comp)(int, int) = findmax ){
    int MinMax=a[0];
    for (int i=1; i<n; i++){
        if (comp(a[i], MinMax))
            MinMax=a[i];
    }
    return MinMax;
}

int main() {
    int n, m;
    int A[1000000];
    int B[1000000];
    cin >>n >>m;
    for (int i=0; i<n; i++){
        cin >>A[i];
    }
    for (int i=0; i<m; i++){
        cin >>B[i];
    }
    cout << findMinMax(A, n, findmin) <<endl <<findMinMax(B, m);
    return 0;
}

Chạy trên https://onlinegdb.com/rkQ9IWj_8 ổn cả.
Thử khai báo mảng nhỏ hơn 1 tí xem. Và chuẩn nhất là khai báo theo mn: https://onlinegdb.com/SJNTD-i_I

NM hay MN

Lúc trước mình hay bị nhầm N là kí tự đứng trước M trong bảng chữ cái.
ABCDEFGHIJKLMNOPQ
Ngoài lề tí thôi. :smiling_imp:

2 Likes

stack chỉ có 2MB thôi nha em :V 2 mảng 2 triệu int là 8MB rồi :V Em muốn xài nhiều như vậy thì cho A, B lên heap bằng cấp phát động.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?