A C Puzzle

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

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


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 –

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


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

Thanks to Utkarsh Trivedi for suggesting above solution.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above



My Personal Notes arrow_drop_up


Article Tags :
Practice Tags :


2


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.