Alternativa C
Análise da Questão
O objetivo desta questão é converter uma estrutura condicional tradicional (if-else) em uma expressão utilizando o operador ternário na linguagem C.
1. Entendendo o Código Original (Linhas 9 a 14)
O bloco de código fornecido determina qual dos dois números é o maior:
- Condição:
if(numero1 > numero2) - Se Verdadeiro:
maior = numero1 - Se Falso (Else):
maior = numero2
Isso significa que a variável maior receberá numero1 caso ele seja maior que numero2, caso contrário, receberá numero2.
2. Sintaxe do Operador Ternário
Na linguagem C, o operador ternário segue a seguinte estrutura lógica:
\text{condição} \ ? \ \text{valor\_se\_verdadeiro} \ : \ \text{valor\_se\_falso}
- O símbolo
? separa a condição da ação para o caso verdadeiro. - O símbolo
: separa a ação verdadeira da ação falsa.
3. Tradução Lógica
Para reescrever a estrutura if-else acima usando o ternário, mapeamos os elementos diretamente:
| Elemento | Código Original | Expressão Ternária |
|---|
| Condição | numero1 > numero2 | numero1 > numero2 |
| Ação Verdadeira | maior = numero1 | ? numero1 |
| Ação Falsa | maior = numero2 | : numero2 |
Juntando tudo na atribuição à variável maior:
\text{maior} = (\text{numero1} > \text{numero2}) \ ? \ \text{numero1} \ : \ \text{numero2};
4. Avaliação das Alternativas
- A) Usa subtração na condição, o que não faz sentido lógico para comparação de magnitude.
- B) Embora logicamente equivalente (\text{numero2} < \text{numero1} é igual a \text{numero1} > \text{numero2}), a alternativa C é a tradução direta e exata da condição apresentada no enunciado. Em provas, prefere-se a equivalência sintática direta.
- C) Correta. Mantém a condição original (
numero1 > numero2) e atribui corretamente os valores (numero1 se verdadeiro, numero2 se falso). - D) Inverte os valores finais (atribuiria
numero2 quando a condição fosse verdadeira). - E) Incorreta, pois o operador ternário é amplamente utilizado em C para simplificar essas escolhas binárias.
Conclusão
A reescrita correta preserva a lógica de selecionar o maior valor mantendo a condição original da sentença if.
Portanto, a resposta correta é a Alternativa C.