Fácil C++
Classificação com if
Enunciado
Escreva um programa que leia um número inteiro e informe se ele é positivo, negativo ou zero. Use if com inicializador para declarar a variável dentro da condição.
Requisitos
- Usar
ifcom inicializador (declarar a variável na condição). - Imprimir exatamente
positivo,negativoouzero(minúsculas). - O programa deve ler um número inteiro da entrada padrão.
Código inicial
#include <iostream>
int main() {
// Seu código aqui
return 0;
}
Saída esperada
positivo
Ver dica
A sintaxe é if (int n = valor; n > 0) { ... } else if (n < 0) { ... } else { ... }. Lembre-se de ler o valor antes do if.
Mostrar solução
#include <iostream>
int main() {
int valor;
std::cin >> valor;
// if com inicializador: 'n' existe apenas dentro do bloco
if (int n = valor; n > 0) {
std::cout << "positivo\n";
} else if (n < 0) {
std::cout << "negativo\n";
} else {
std::cout << "zero\n";
}
return 0;
}
Passo a passo
- Incluímos
<iostream>para entrada e saída. - Declaramos
valore lemos um inteiro do usuário. - No
ifcom inicializador, declaramosint n = valore testamosn > 0. A variávelnsó existe dentro doif/else. - Se
n > 0, imprimimospositivo. - Senão, testamos
n < 0noelse if; se verdadeiro, imprimimosnegativo. - Caso contrário, imprimimos
zero.
Por que funciona
O if com inicializador permite criar uma variável temporária usada apenas na condição e nos blocos associados, evitando que ela fique visível no restante do programa. A estrutura if/else if/else garante que apenas um dos caminhos seja executado, cobrindo todos os casos possíveis.
Erros comuns
- Esquecer de ler o valor antes do
if:int valor; if (int n = valor; ...)usaria lixo de memória. Corrija lendo comstd::cin >> valor;antes. - Usar
=em vez de==na condição:if (n = 0)atribui e testa o resultado, causando comportamento errado. Use==para comparação. - Não usar
else ife acabar com doisifindependentes, permitindo que mais de uma mensagem seja impressa. Useelse ifpara encadear.
Outra forma de resolver
Sem o inicializador, declarando a variável fora:
int n = valor;
if (n > 0) { ... }
É preferível quando a variável precisa ser usada depois do if.
Saída esperada
positivo