Meilleure façon d'imprimer le résultat d'un bool comme "faux" ou "vrai" en c?

Je dois écrire un programme principal qui appelle d'autres fonctions que de tester une série de nombre, s'ils sont moins que d'un nombre, si tous les de la série " les numéros sont compris entre deux limites, et si tout est négatif. Mon code renvoie les valeurs de 1 pour vrai et 0 pour faux, mais la consigne demande qu'ils soient imprimés en tant que "vrai" ou "faux". Je ne suis pas sûr de la façon d'obtenir le bool réponses à imprimer sous la forme d'une chaîne de printf. J'ai utilisé si (atl == false) printf("false"); dans mon at_least.c et dans la principale.c, mais il ne renvoie qu'une longue chaîne de vrai ou faux (ex: truetruetrue....). Je ne suis pas sûr si c'est le bon codage et je suis en train de mettre dans le mauvais endroit ou il y avait un autre code que j'ai besoin d'utiliser.

C'est ma principale.c:

#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",&x)) != EOF)
        {
            sumall(x, &sum);                           //calling function sumall
            count++;
            larger_smaller(x, &largest, &smallest);    //calling function larger_smaller
            if (atlst == false)
               at_least(x, &atlst);                    //calling function at_least if x < 50
            if (bet == true)
               between(x, &bet);                       //calling function between if x is between 30 and 40 (inclusive)
            if (neg == false)
               negative(x, &neg);                      //calling function negative if x < 0
        }
    average = (double) sum / count;         
    print(count, sum, average, largest, smallest, atlst, bet, neg);
    return;
 }

mes résultats pour un ensemble de nombres:

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 <  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

C'est en C, je n'arrive pas à trouver beaucoup sur.

Merci d'avance pour votre aide!

ADDENDUM:

Cette opération est répétée à partir d'une réponse ci-dessous.

Il a travaillé pour le at_least et négatifs des fonctions, mais pas pour la entre la fonction. J'ai

void between(int x, bool* bet) 
  { 
    if (x >= LOWER && x <= UPPER) 
        *bet = false; 
    return; 
  }

que mon code. Je ne suis pas sûr de ce qui est mauvais.

Juste une note de côté, x == true est redondante dans une expression Booléenne; vous pouvez simplement dire x. De même, x == false est juste !x.

OriginalL'auteur Piseagan | 2011-10-01