Detailed Print – Computer Sir Ki Class

Solved Problem#CPP#7691

## Problem Statement - Output writing using structure copy and strcat use

```struct Employee{double salary,hra;};
void change(Employee &a,double h=100)
{
a.salary+=1000;
a.hra+=h;
}
int main()
{
Employee A={5000,2000};
cout<<"Initial Payment  = "<<A.salary+A.hra<<endl;
change(A,500);
cout<<"After 1st Change = "<<A.salary+A.hra<<endl;
change(A);
cout<<"After 2nd Change = "<<A.salary+A.hra<<endl;
return 0;
}```

Write the output of the above program. Assume that required header files are present.

## Solution

```		#include <iostream>
using namespace std;
struct Employee{double salary,hra;};
void change(Employee &a,double h=100)
{
a.salary+=1000;
a.hra+=h;
}
int main()
{
Employee A={5000,2000};
cout<<"Initial Payment  = "<<A.salary+A.hra<<endl;
change(A,500);
cout<<"After 1st Change = "<<A.salary+A.hra<<endl;
change(A);
cout<<"After 2nd Change = "<<A.salary+A.hra<<endl;
return 0;
} ```

## Run Output

``````Initial Payment  = 7000
After 1st Change = 8500
After 2nd Change = 9600
``````

## Solved Problem Understanding

Employee A={5000,2000};
cout<<“Initial Payment = “<<A.salary+A.hra<<endl;
Initial value directly read from structure and added as 5000+2000 as 7000
change(A,500);
This will pass structure and value 500 to change function which will add 1000 to salary and 500 to hra making it 6000 and 2500 respectively.
cout<<“After 1st Change = “<<A.salary+A.hra<<endl;
Value printed now would be 6000+2500 as 8500.
change(A);
This will pass structure and default value 100 to change function which will add 1000 to salary and 100 to hra making it 7000 and 2600 respectively.
cout<<“After 2nd Change = “<<A.salary+A.hra<<endl;
Value printed now would be 7000+2600 as 9600.