Open In App

A C Puzzle

Last Updated : 21 Jun, 2018
Improve
Improve
Like Article
Like
Save
Share
Report

What code to write in place of “// your code” so that the below code prints 20.




#include <stdio.h>
int f();
  
int main()
{
    int a = 0;
    f();
    printf("%d",a);
    return 0;
}
  
int f()
{
   // your code
}


Output:

20 

We strongly recommend you to minimize your browser and try this yourself first

This question seems to be a trick question, as it is not possible to update local variable in a function without sending it, we can’t make value of ‘a’ as 20 but for outputting 20 we can write function f as below –




#include <stdio.h>
int f();
  
int main()
{
    int a = 0;
    f();
    printf("%d",a);
    return 0;
}
   
int f()
{
    printf("2");
}


2 will be printed by f() and 0 will be printed by a

Thanks to Utkarsh Trivedi for suggesting above solution.


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads