2
respostas

[Dúvida] Números no código

#include <stdio.h>

#include <stdlib.h>

int main() { char palavrasecreta[20];

palavrasecreta[0] = 'M'; palavrasecreta[1] = 'E'; palavrasecreta[2] = 'L';

printf("%c", palavrasecreta[0]); }

Esse é meu código caso eu troque o %c por %d ele oferece um número, esse em específico mostra o número 77. Por que isso acontece?

2 respostas

Creio eu que, ao declarar 'char' no código ele irá trabalhar apenas com caracteres limitados a quantidade inserida entre as chaves [ ], então ao pedimos e essa variável, "%c" é usado ao invés de "%d" pois quando se usa o "%d" o programa entende que há um numero inteiro e não uma palavra armazenada na variável, o que ocorre no seu caso é uma variável "vazia", sem nada declarado dentro dela gerando um numero aleatório. espero ter ajudado! Devs de plantão me corrijam se eu estiver errada... <3

"%d" e "%i" são máscaras da função printf para mostrar variáveis do tipo inteiro. "%c" indica que o printf deve mostrar uma variável do tipo char na tela.

Pesquisei a tabela ASCII e notei que a letra "M" maiúscula é o caracter 77 em decimal. https://www.ime.usp.br/~pf/algoritmos/apend/ascii.html

Acredito que o seu código tenta mostrar a letra M, mas como a máscara do printf está para inteiros (%d) apresenta o número 77.

Por favor, me corrijam se eu estiver errado!