Reescrever o programa abaixo usando somente o operador condicional (ou seja, sem usar o comando if).
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int idade1,idade2,maior_idade,mais_velho,mais_leve;
    float peso1,peso2,menor_peso;
    printf("Digite a idade e o peso da pessoa 1: ");
    scanf("%d %f", &idade1,&peso1);
    printf("Digite a idade e o peso da pessoa 2: ");
    scanf("%d %f", &idade2,&peso2);
    if (idade1 > idade2)
    {
        maior_idade = idade1;
        mais_velho = 1;
    }
    else
    {
        maior_idade = idade2;
        mais_velho = 2;
    }
    if (peso1 < peso2)
    {
        menor_peso = pesol;
        mais_leve = 1;
    }
    else
    {
        menor_peso = peso2;
        mais_leve = 2;
    }
    printf("Maior idade = %d (pessoa %d)\n",maior_idade,mais_velho);
    printf("Menor peso = %.1f (pessoa %d)\n",menor_peso,mais_leve);
    return 0;
}

Passo 1

O programa original lê idade e peso de duas pessoas e depois, usando comandos if, determina qual tem a maior idade e qual o menor peso, indicando também a pessoa correspondente.

Passo 2

Em vez de usar if/else, podemos usar o operador condicional (?😃 para fazer atribuições em uma linha só. Primeiro substituímos a lógica que calcula maior_idade e mais_velho por duas expressões ternárias.

Passo 3

Em seguida, substituímos a lógica que calcula menor_peso e mais_leve por outras duas expressões ternárias análogas.

Passo 4

Por fim, mantemos as chamadas a printf exatamente como no programa original, garantindo que o comportamento permaneça o mesmo.

Resposta

#include <stdio.h>
#include <stdlib.h>
int main() {
int idade1, idade2, maior_idade, mais_velho, mais_leve;
float peso1, peso2, menor_peso;
printf("Digite a idade e o peso da pessoa 1: ");
scanf("%d %f", &idade1, &peso1);

printf("Digite a idade e o peso da pessoa 2: ");
scanf("%d %f", &idade2, &peso2);

maior_idade = (idade1 > idade2) ? idade1 : idade2;
mais_velho  = (idade1 > idade2) ? 1 : 2;

menor_peso = (peso1 < peso2) ? peso1 : peso2;
mais_leve  = (peso1 < peso2) ? 1 : 2;

printf("Maior idade = %d (pessoa %d)\n", maior_idade, mais_velho);
printf("Menor peso = %.1f (pessoa %d)\n", menor_peso, mais_leve);

return 0;
}

Exercícios relacionados