In: Computer Science
Trace through the program and what the outputs will be. If there is an error explain what must be fixed and continue to trace through.
#include <iostream>
using namespace std;
void beans(int y, int& n, int size);
void spam(int& n, int& y);
int main(){
    int m = 7;
    int n = 4;
    cout<<"m is "<<m<<" n is "<<n<<endl;
    beans(n, m, 3);
    cout<<"m is "<<m<<" n is "<<n<<endl;
    spam(m, n);
    cout<<"m is "<<m<<" n is "<<n<<endl;
    beans(m, 2, n);
    cout<<"m is "<<m<<" n is "<<n<<endl;
    return 0;
}
void beans(int y, int& n, int size){
    y = n+size;
    n = 7+n;
}
void spam(int& n, int& y){
    int m = n+y;
    y=n;
    n=y+n;
}

When the function accepts a value using '&' , it is pointing to the address of variable whose value is passed. So changes will be directly reflected.
Therefore different value of m and n printed are
| O/P | value of m | value of n | 
| 1 | 7 | 4 | 
| 2 | 2i | 14 | 
| 3 | 28 | 14 | 
If you have any questions comment down. Please don't simply downvote and leave. If you are satisfied with answer, please? upvote thanks