What are the exact numbers
<h2>This function will land up in infinite function call</h2>
Explanation:
first time when the function gets invoked,
f(6,8), so k=6 & n=8, inside the function it checks k==n, ie. 6==8, returns false, then one more if is available, so 6>8 is check for , once again it is false and else loop is executed, the function is called recursively using f(k-n,n), that is f(6-8,8), it means f(-2,8) is passed.
Second time,
if(-2==8) is false, so if(-2>8) is again false and function f(-10, 8) is called
if(-10==8) is false, so if(-10>8) is again false and function f(-18,8) is called
if(-18==8) is false, so if(-18>8) is again false and function f(-26,8) is called
So this goes recursively and ends in an infinite function call.
Answer:
#include <iostream>
using namespace std;
void swap(int& m, int& n) /* passing by reference so that changes will be made in the original values.*/
{
int t=m;
m=n;
n=t;
}
int main()
{
int val1,val2;
cout<<"Enter the values"<<endl;
cin>>val1>>val2;
cout<<"Values before swap "<<val1<<" "<<val2<<endl;
swap(val1,val2);
//calling the function swap..
cout<<"Values after swap "<<val1<<" "<<val2<<endl;
return 0;
}
Explanation:
Created a function swap with 2 arguments m and n passed by reference.