Boa noite, estou com dificuldade em um código iniciante, estou acompanhando videos youtube e lendo alguns fóruns e em um dos vídeos me deparei com essa dúvida pois até no vídeo não funcionou mas não tive retorno,vale lembrar que comecei tem pouco tempo então me desculpem a ignorância, o que está ocorrendo é o seguinte:
Variável booleana aceita receber um valor no scanf? ( 0 ou 1 )
Só funciona em alguma condicional? ( if, ...)
Quando executo o programa ele mostra o resultado da variável booleana, mas não mostra do char, fui testando linha por linha e vi que se desativar o scanf da booleana o char funciona, vou colocar o código aqui para ficar mais prático de entender, estou colocando também a imagem da execução do programa, onde deveria aparecer o char não mostra nada, Obrigado.
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h> // biblioteca ultilizada para adc variáveis booleanas ou seja variáveis do tipo lógico
main(){
//definindo variáveis
int a;
float b;
char c;
bool d;
//passar os valores
a = 5;
b = 2.5;
c = 'c';
d = true;
//imprimindo na tela
printf("\nO valor de a = %d", a);
printf("\nO valor de b = %.2f", b); //se adicionar um ponto e um número entre % e o f, podemos definir a formatação do float ao imprirmir
printf("\nO valor de c = %c", c);
printf("\nO valor de d = %d\n", d);
//lendo valores na tela
scanf("%d", &a);
scanf("%f", &b);
scanf(" %c", &c); //em linguagem C quando se lê um carctere, coloca se espaço entre as aspas duplas e o símbolo de c
scanf("%d", &d);
//reescrevendo o valor na tela
printf("\n O valor de a = %d", a);
printf("\n O valor de b = %.1f", b);
printf("\n O valor de c = %c", c);
printf("\n O valor de d = %d\n", d);
//pausando
system("pause");
}