title: Best way to print the result of a bool as 'false' or 'true' in c?
body: <p>I have to write a program in which main calls other functions that test a series of number if any are less than a number, if all the series' numbers are between two limits, and if any are negative.  My code returns the values of 1 for true and 0 for false, but the assignment asks that they be printed as 'true' or 'false'.  I'm not sure how to get the bool answers to print as a string from printf.  I used if (atl == false) printf("false"); in my at_least.c and in main.c, but it returns only a long string of true or false (ex: truetruetrue....).  I'm not sure if that is the correct coding and I'm putting it in the wrong spot or there was some other code that I need to use.</p>
  
  <p>This is my main.c:</p>
  
  <pre><code>#include "my.h"
  
  int main (void)
  
  {
      int     x;
      int     count    = 0;
      int     sum      = 0;
      double  average  = 0.0;
      int     largest  = INT_MIN;
      int     smallest = INT_MAX;
      bool    atlst    = false;
      bool    bet      = true;
      bool    neg      = false;
      int     end;
  
      while ((end = scanf("%d",&amp;x)) != EOF)
          {
              sumall(x, &amp;sum);                           //calling function sumall
              count++;
              larger_smaller(x, &amp;largest, &amp;smallest);    //calling function larger_smaller
              if (atlst == false)
                 at_least(x, &amp;atlst);                    //calling function at_least if x &lt; 50
              if (bet == true)
                 between(x, &amp;bet);                       //calling function between if x is between 30 and 40 (inclusive)
              if (neg == false)
                 negative(x, &amp;neg);                      //calling function negative if x &lt; 0
          }
      average = (double) sum / count;         
      print(count, sum, average, largest, smallest, atlst, bet, neg);
      return;
   }
  </code></pre>
  
  <p>my results for a set of numbers:</p>
  
  <pre><code>The number of integers is:           15
  The sum is               :         3844
  The average is           :       256.27
  The largest is           :          987
  The smallest is          :          -28
  At least one is &lt;  50    :            1     //This needs to be true
  All between  30 and  40  :            0     //This needs to be false
  At least one is negative :            1     //This needs to be true
  </code></pre>
  
  <p>This is in C, which I can't seem to find much on.</p>
  
  <p>Thanks in advance for your help!</p>
  
  <p>ADDENDUM:</p>
  
  <p>This is repeated from an answer below.</p>
  
  <p>This worked for the at_least and negative functions, but not for the between function. I have </p>
  
  <pre><code>void between(int x, bool* bet) 
    { 
      if (x &gt;= LOWER &amp;&amp; x &lt;= UPPER) 
          *bet = false; 
      return; 
    }
  </code></pre>
  
  <p>as my code. I'm not sure what's wrong.</p>