#include <iostream>
#include <cstring>
using namespace std;
// =================================================
// #1. 합(a+b)는 return, 나머지는 주소로 전달
int sum_diff_mult(int a, int b, int c, int *x, int *y){
*x = a - b;
*y = a * b;
return a + b;
}
// #2. 합, 차, 곱 3개의 값을 모두 포인터로 반환
void sum_diff_mult2(int a, int b, int c, int *x, int *y, int *z){
*x = a + b;
*y = a - b;
*z = a * b;
}
// #3. 합(a+b)는 return, 나머지는 레퍼런스로 전달
int sum_diff_mult3(int a, int b, int c, int &x, int &y){
x = a - b;
y = a * b;
return a + b;
}
// =================================================
int main(){
// 여러가지 값을 반환해야 하는 경우
// 함수에게 3개의 정수 (a, b, c) 전달 => 합, 차, 곱 반환
// #1. 합(a+b)는 return, 나머지는 주소로 전달
int a = 10, b = 20, c = 30;
int sum, x, y, z;
sum = sum_diff_mult (a, b, c, &x, &y);
cout << "sum = " << sum << ", diff = " << x << ", mulp = " << y << endl;
// #2. 합, 차, 곱 3개의 값을 모두 포인터로 반환
sum_diff_mult2(a, b, c, &x, &y, &z);
cout << "sum = " << x << ", diff = " << y << ", mulp = " << z << endl;
// #3. 합(a+b)는 return, 나머지는 레퍼런스로 전달
sum = sum_diff_mult3(a, b, c, x, y);
cout << "sum = " << sum << ", diff = " << x << ", mulp = " << y << endl;
return 0;
}