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;
}
#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>
#include <stdlib.h>
int main() {
int idade1, idade2, maior_idade, mais_velho, mais_leve;
float peso1, peso2, menor_peso;
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;
}