Fácil C
Declarando e imprimindo tipos básicos
Enunciado
Escreva um programa que declare uma variável int chamada ano com valor 2025, um char chamado letra com 'A', um float chamado preco com 19.99 e um double chamado taxa com 0.075. Imprima cada valor usando o formato correto.
Requisitos
- Declarar as quatro variáveis com os tipos pedidos.
- Usar
printfcom os especificadores%d,%c,%fe%lf. - A saída deve mostrar os valores exatos.
Código inicial
#include <stdio.h>
int main(void) {
// Declare as variáveis aqui
// Imprima os valores
return 0;
}
Saída esperada
Ano: 2025
Letra: A
Preço: 19.990000
Taxa: 0.075000
Ver dica
Use %d para int, %c para char, %f para float e %lf para double.
Mostrar solução
#include <stdio.h>
int main(void) {
int ano = 2025; // inteiro
char letra = 'A'; // caractere
float preco = 19.99f; // float (f no final)
double taxa = 0.075; // double (precisão dupla)
printf("Ano: %d\n", ano);
printf("Letra: %c\n", letra);
printf("Preço: %f\n", preco);
printf("Taxa: %lf\n", taxa);
return 0;
}
Passo a passo
- Incluímos
stdio.hpara usarprintf. - Declaramos
int ano = 2025;— tipo inteiro, armazena números sem parte decimal. - Declaramos
char letra = 'A';— armazena um único caractere entre aspas simples. - Declaramos
float preco = 19.99f;— o sufixofindica que o literal éfloat(evita conversão dedouble). - Declaramos
double taxa = 0.075;—doubletem maior precisão quefloat. - Usamos
printfcom os especificadores corretos:%dpara inteiro,%cpara caractere,%fpara float e%lfpara double. - Cada
printftermina com\npara pular linha.
Por que funciona
Cada tipo tem um formato de impressão específico. Usar o especificador errado causa comportamento indefinido (lixo na saída). O float precisa do sufixo f no literal para não ser promovido a double na atribuição. O double usa %lf no printf, embora em scanf a diferença seja crucial.
Erros comuns
- Esquecer o
fno literalfloat:float preco = 19.99;— o compilador pode avisar sobre conversão dedoubleparafloatcom perda de precisão. - Usar
%dparafloat:printf("%d", preco);— imprime um valor inteiro incorreto. - Usar
%fparadoublenoscanf:scanf("%f", &taxa);— deve ser%lf.
Outra forma de resolver
Poderia usar double para todos os reais, evitando o sufixo f. Mas o enunciado pede float e double.
Saída esperada
Ano: 2025
Letra: A
Preço: 19.990000
Taxa: 0.075000