Open In App

A C Puzzle

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.



Article Tags :