Khai báo hàm tìm giá trị lớn nhất trong một màng các số long dưới đây, khai báo nào đúng:
Trả lời:
Đáp án đúng: D
Câu hỏi yêu cầu khai báo hàm tìm giá trị lớn nhất trong một mảng các số kiểu `long`.
* **Phương án A:** `void Max(long *a);`
* Sai. Thiếu kích thước mảng, không thể xác định số lượng phần tử để tìm max, và không trả về giá trị max.
* **Phương án B:** `long Max(long *a[]);`
* Sai. `long *a[]` là mảng các con trỏ kiểu `long`, không phải mảng các số kiểu `long`. Ngoài ra, cũng thiếu kích thước mảng.
* **Phương án C:** `void Max(long a[], int n);`
* Sai một phần. Có kích thước mảng `n`, nhưng hàm `void` không trả về giá trị lớn nhất tìm được. Hàm này chỉ có thể in ra giá trị lớn nhất, chứ không trả về để sử dụng ở nơi khác.
* **Phương án D:** `long Max(long *a, int n);`
* Đúng. `long *a` là con trỏ đến mảng các số kiểu `long`, `int n` là kích thước mảng. Hàm trả về kiểu `long`, là giá trị lớn nhất tìm được trong mảng. Đây là khai báo phù hợp nhất.
Vậy đáp án đúng là D.