What will be the output and why include int fint nfloat x ma

What will be the output and why?

#include <stdio.h>

int f(int n,float x);

main( )

{int a=10,n=12,p;

float x=2.2, y=7.4;

p=f(n,y);

printf(\"%d %d\ \",n,p);

for(n=1;n<3;n++)

printf(\"%d %d\ \",n,f(n,x));

if(x++>3)

printf(\"too big x=%f\ \",x);

else

printf(\"too small x=%f\ \",x);

}

int f(int a,float x)

{int n=5;

if(x>3)

{a=a+2;

x=x+2;

return a-x;}

else

{n=n-3;

   x=x-3;

   return n;

   }

}

Solution

The Output :-

Explanation :-

STEP1 :-
Function call :-

p=f(n,y);
Here we are passing the values of n and y as 12 and 7.4.
Finally these values are stored in function definition.

STEP2 :-
Function definition :-

int f(int a,float x) // Now a=12 and x=7.4
{
int n=5;
if(7.4>3) //True so only if block will be executed.
{
a=a+2; //12+2=14
x=x+2; //7.4+2=9.4
return a-x; //14-9.4=4.6
}
Note :- In the main method the returning variable p is declared as int type.
so the return value 4.6 is returned as 4 to calling place and stored in the variable p.
else
{
n=n-3;
x=x-3;
return n;
}

STEP3 :-
printf(\"%d %d\ \",n,p); statement prints the values of n and p as 12 and 4. // Output Line No 1.

STEP4 :-
for(n=1;n<3;n++)
printf(\"%d %d\ \",n,f(n,x));

STEP4.1 :-
for(n=1;1<3;n++) //True
printf(\"%d %d\ \",n,f(n,x)); //Function call
Here we are passing the values of n and x as 12 and 2.2
Finally these values are stored in function definition as a=12 and x=2.2

STEP4.1.1 :-
int f(int a,float x) // Now a=12 and x=2.2
{
int n=5;
if(2.2>3) //False so only else block will be executed.
{
a=a+2;
x=x+2;
return a-x;
}
else
{
n=n-3; //5-3 = 2
x=x-3; //2.2-3 = -0.8
return n; //2 which is returned to f(n,x) and finally stored in p.
}

STEP4.1.2 :-
printf(\"%d %d\ \",n,f(n,x)); prints the values of n,f(n,x) as 1 and 2. //  Output Line No 2.

STEP4.2 :-
for(n=1;2<3;n++) //True
printf(\"%d %d\ \",n,f(n,x)); //Function call
Here we are passing the values of n and x as 12 and 2.2
Finally these values are stored in function definition as a=12 and x=2.2

STEP4.2.1 :-
int f(int a,float x) // Now a=12 and x=2.2
{
int n=5;
if(2.2>3) //False so else block will be executed.
{
a=a+2;
x=x+2;
return a-x;
}
else
{
n=n-3; //5-3 = 2
x=x-3; //2.2-3 = -0.8
return n; //2 which is returned to f(n,x) and finally stored in p.
}

STEP4.2.2 :-
printf(\"%d %d\ \",n,f(n,x)); prints the values of n,f(n,x) as 1 and 2. // Output Line No 3.

STEP4.3 :-
for(n=1;3<3;n++) //False so for loop will be terminated.

STEP5 :-
if(x++>3) //(3.2>3) which is False so else block will be executed.
printf(\"too big x=%f\ \",x);
else
printf(\"too small x=%f\ \",x);

STEP6 :-
Finally printf(\"too small x=%f\ \",x); prints as too small x=3.2 //  Output Line No 4.

What will be the output and why? #include <stdio.h> int f(int n,float x); main( ) {int a=10,n=12,p; float x=2.2, y=7.4; p=f(n,y); printf(\
What will be the output and why? #include <stdio.h> int f(int n,float x); main( ) {int a=10,n=12,p; float x=2.2, y=7.4; p=f(n,y); printf(\
What will be the output and why? #include <stdio.h> int f(int n,float x); main( ) {int a=10,n=12,p; float x=2.2, y=7.4; p=f(n,y); printf(\

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site