element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Code Exchange
  • Technologies
  • More
Code Exchange
Forum If-Else construct in C language-hello world
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Code Exchange to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Suggested Answer
  • Replies 8 replies
  • Answers 1 answer
  • Subscribers 49 subscribers
  • Views 1727 views
  • Users 0 members are here
  • loop
  • Code Exchange
  • world
  • hello
  • if-else
Related

If-Else construct in C language-hello world

dr.akshay_1980@yahoo.com
dr.akshay_1980@yahoo.com over 10 years ago

Hi,

       I want to display hello world after compiling the below code, How can this be possible?

 

main()

{

    if(?)

     {

        printf("hello");

     }

  else

    {

      printf( "world");

    }

}

 

Is this possible by any means? what should be in place of question mark above

  • Sign in to reply
  • Cancel

Top Replies

  • coolbox
    coolbox over 10 years ago in reply to dr.akshay_1980@yahoo.com +2 suggested
    Yes,It is Possible.You Know This question is similar to : Write a Hello world C program without using a semicolon(;) This is Full code: #include<stdio.h> #include<conio.h> int DemoFunction( void ) { printf…
  • dr.akshay_1980@yahoo.com
    dr.akshay_1980@yahoo.com over 10 years ago in reply to coolbox +1
    Yes great buddy,indeed I thought for this, but i was confused that calling the function in the the parameter and the zero(0) which is a return type, will it be returned to the stack or act as if condition…
  • shabaz
    shabaz over 10 years ago in reply to dr.akshay_1980@yahoo.com +1
    You're still only traversing one path of the fork of course. Which means that the other path is still never exercised, i.e. unused code - not great coding because effectively it can all be collapsed to…
  • shabaz
    0 shabaz over 10 years ago

    This seems an odd question, that can be discussed with logic.

     

    It is like a fork in a road - you can go one way or the other way - based on a "rule". Therefore you can't experience both ways unless you turn back at some point.

    I don't see in your code how you plan to turn back, so it follows that you can only traverse one fork of the road... regardless of the "rule".

     

    There are plenty of C tutorials, and probably only around 30 keywords in the C language..

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • dr.akshay_1980@yahoo.com
    0 dr.akshay_1980@yahoo.com over 10 years ago in reply to shabaz

    Yes, this is indeed true when one stick to the rule of if-else construct.But surprisingly this was asked to me in one interview.in order to provide the solution, I tried and after pondering I was able to overcome it with double iteration i.e. as you said above coming back to same point on a single road which is bifurcated.

    I transverse back using do-while loop such that firstly if is executed and then else is executed.

     

    var=0;

    do

    {

        if(var==0)

         {

           printf("hello");

           var+=1;

        }

        else

       {

          printf("world");

         var+=1;

       }

    } while( var<=1);


    But the interviewer was not satisfied with this response. He gave me a hint to call a function in if condition such that "hello world" is printed. I could not get him.


    or is this question a worthless??


    if( ????????  )     is it possible to call some function over here?

       {

           printf("hello");

      }

    else

    {

       printf("world");

    }


    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • coolbox
    0 coolbox over 10 years ago in reply to dr.akshay_1980@yahoo.com


    Yes,It is Possible.You Know This question is similar to : Write a Hello world C program without using a semicolon(;)

     

    This is Full code:


    #include<stdio.h>

    #include<conio.h>

     

    int DemoFunction( void )

    {

      printf("hello ");

      return 0;

    }

     

    int main( )

    {

      if( DemoFunction( ) )    // is it possible to call some function over here?

      {

        printf("hello");

      }

      else

      {

        printf("world");

      }

      getch();

      return 0;

    }



    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • dr.akshay_1980@yahoo.com
    0 dr.akshay_1980@yahoo.com over 10 years ago in reply to coolbox

    Yes great buddy,indeed I thought for this, but i was confused that calling the function in the the parameter and the zero(0) which is a return type, will it be returned to the stack or act as if condition's parameter?

     

    This is good example out of box, where the "Hello" is printed by function calling and the "world" is printed by else condition.

     

    Thanx a lot....

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • coolbox
    0 coolbox over 10 years ago in reply to dr.akshay_1980@yahoo.com

    Thanks Akshay,

     

    Please Mark This questions answered.image

     

    Parth

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • D_Hersey
    0 D_Hersey over 10 years ago

    I don't imagine the compiler not objecting to the prior code 'cause void is not a type that can be true or false.  G_d I hate these stupid code puzzles, they never seem to illuminate much!  You could put a static variable in the fn, something like Virgin = 0.  When the function executes the last line is Virgin =1.  Virgin can be used as an index for a string table.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • shabaz
    0 shabaz over 10 years ago in reply to dr.akshay_1980@yahoo.com

    You're still only traversing one path of the fork of course. Which means that the other path is still never exercised, i.e. unused code - not great coding because effectively it can all be collapsed to:

    int main(void)
    {
     demofunction();
     printf("world");
     return(0);
    }

     

    The hardcoded if..else and unused code is not a good thing for readability/maintenance and would fail a code review.

     

    Nor a handy trick for interviewers surely - perhaps topics like recursive algorithms, bitwise operators, boolean logic, inheritance, polymorphism, pure virtual and virtual functions and other topics would be more useful to learn and test, but what do I know!


     

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • coolbox
    0 coolbox over 10 years ago in reply to shabaz

    Completely agreed .

    But the irony is this type of questions are really asked in interview.

    I was asked a question to write a hello world C program without using a single semicolon.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube