Alternativa A
O objetivo da questão é completar um trecho de código em linguagem C para simular o lançamento de dois dados (valores entre 1 e 6) e comparar os resultados.
Análise Detalhada
- Tipo de Retorno da Função
Dado()
A função Compara recebe dois argumentos do tipo inteiro: void Compara(int jog1, int jog2). Como ela é chamada com Compara(Dado(), Dado()), a função Dado() deve retornar um valor numérico inteiro. Portanto, o primeiro espaço em branco (tipo de retorno) deve ser preenchido com int. - Geração de Números Aleatórios (Lógica do Dado)
A função rand() gera números inteiros grandes e aleatórios. Para obter um resultado de um dado padrão (de 1 a 6), utilizamos a operação módulo (%).
- O operador
% 6 retorna valores de 0 a 5. - Para transformar isso na faixa desejada (1 a 6), devemos somar 1 ao resultado.
- A fórmula correta é: (rand() \% 6) + 1
- Eliminação das Alternativas Incorretas
- Opções B, C e E: Utilizam fórmulas incorretas para gerar o número do dado.
rand() % 6 daria 0-5, e rand() geraria números muito altos. Além disso, a alternativa B e E sugerem tipos void ou ponteiros (*), incompatíveis com a chamada da função Compara. - Opção D: Embora contenha a fórmula correta
(rand()%6)+1, ela sugere o uso de ponteiros (*) nos parâmetros/tipos, o que não condiz com a assinatura da função Compara que espera int.
Portanto, a Alternativa A é a única que apresenta a estrutura lógica correta para o tipo de dado e a fórmula matemática adequada para simular um dado de seis faces.