Giúp mình tìm lỗi mình lỗi không khai báo a và b ;

#include<iostream>
using namespace std;

int* Max(int *a, int *b)
{
	return *a > *b ? a : b;
}
int Min(int *a, int *b)
{
	return *a < *b ? *a : *b;
}
int main()
{
	int *a,*b;
	cout << "nhap a : ";
	cin >> *a; 
	cout << "nhap b : ";
	cin >> *b;

	int *max = Max(a, b);
	int min = Min(a, b);
	cout << "Max = " << *max;
	cout << "Min = " << min;
return 0; 
}

bạn có hiểu cách khai báo
int *a, *b; là gì không ?
Lâu rồi không code C++ nữa nhưng theo mình nhớ đó là con trỏ.
Khai báo *a và a là khác nhau.
Bạn nên tìm hiểu thêm.

1 Like

Đúng như anh @masoivn nói.
Bài của bạn có vấn đề sử dụng con trỏ.
Con trỏ là để biến để chứa địa chỉ.
Ta khai báo và sử dụng có thể như sau với bài bạn.

int *a, *b;
int numA = 5;
int numB = 10;
a = &numA;
b = &numB; // & toán tử lấy địa chỉ

Bạn sử dụng biến *a sẽ lấy ra giá trị của địa chỉ chứa trong a.
Mình cũng không hiểu ý của bài toán max min của bạn. Bạn có thể đọc lại về con trỏ đề nắm rõ vấn đề !

Bài của mình là nhập vào 2 số a,b mà tìm min max theo phương pháp con trỏ !

Tìm int* max và int min là 2 dạng khai báo mình chỉ luyện tập nên ghi v để nhớ bài thôi !

Bạn khai báo con trỏ nhưng chưa cấp phát mà đã dùng, nên xem lại kiến thức con trỏ nhé

Thử thêm vào như sau là chạy được:
int num1, num2;
int *a, *b;
a = &num1;
b = &num2;

=))

Mình đã chạy được khi cấp phát cọ trỏ r nhé ! Anyway thank you

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