Bạn không thể trả về cùng lúc hai giá trị trong cùng một hàm với câu lệnh return
nhưng nếu như bạn vẫn muốn, thì vẫn còn cách khác, mặc dù có chút hơi phức tạp và ở đây mình dùng cấu trúc struct
để lưu hai giá trị của Tong
và Tich
rồi sau đó ở hàm tính Tổng và Tích mình sẽ trả về cấu trúc struct
thay vì từng biến Tong
và Tich
, cụ thể như sau,
#include <iostream>
using namespace std;
// Khai báo cấu trúc chứa giá trị Tổng và Tích
struct TT {
int Tong;
int Tich;
};
// Hàm tính Tổng và Tích
// Input: 2 số nguyên a và b
// Output: Cấu trúc TT như trên thay vì hai biến Tong hoặc Tich riêng lẻ
TT TinhTongVaTinhTich(int a, int b){
TT A;
A.Tong = a + b;
A.Tich = a * b;
return A;
}
int main(){
int a = 2;
int b = 3;
TT A = TinhTongVaTinhTich(a, b);
cout << A.Tong << endl; // Tong = 5
cout << A.Tich << endl; // Tich = 6
return 0;
}
Các bước mình thực hiện ở đoạn chương trình trên:
- Tạo một cấu trúc tên
TT
có hai thành phần là Tong
và Tich
với kiểu dữ liệu số nguyên.
- Tạo hàm tính tổng truyền vào hai giá trị
a
và b
, thực hiện tính Tổng và Tích sau đó lưu vào biến cấu trúc A
.
- Ở hàm
main()
, tạo biến cấu trúc A
để nhận giá trị trả về, sử dụng toán tử chấm (.) để lấy giá trị đã tính bên trong cấu trúc ra.
Hope it help...
Chẳng hạn cần lấy 2 giá trị thì mình nghĩ dùng pair<> được mà, nhiều hơn chắc cần dùng đến struct: pair<int,int> ten_ham() { code; return { giá trị 1, giá trị 2}; } trong main mình tạo pair<int,int> a=ten_ham(); để lưu 2 giá trị đấy
– Cộng đồng Cộng đồng 22.08.2022