Home › Fóruns › Linguagem C › código exercício 027
- Este tópico contém 4 respostas, 2 vozes e foi atualizado pela última vez 4 anos atrás por
Tutora Mayla.
-
AutorPosts
-
-
2 de abril de 2021 às 13:00 #64237
Lucas Rodrigues Freitas
ParticipanteBoa tarde pessoal! fiz o código da seguinte maneira, está rodando tudo certo, se os tutores puderem analisar e vê se está correto! ficarei agradecido.
-
2 de abril de 2021 às 13:01 #64238
Lucas Rodrigues Freitas
Participanteo código é esse
#include<stdio.h>
#include<stdlib.h>
#include<locale.h>int main () {
setlocale(LC_ALL, “Portuguese”);
int n1, n2, n3;
printf(“<<< EX027 – Três valores em ordem >>>\n\n”);
printf(“Me diga três números e eu colocarei em ordem pra você!!\n\n”);printf(“Digite o primeiro número: “);
fflush(stdin);
scanf(“%d”, &n1);
printf(“Digite o segundo número: “);
fflush(stdin);
scanf(“%d”, &n2);
printf(“Digite o terceiro número: “);
scanf(“%d”, &n3);
printf(“——————————————————–\n”); -
2 de abril de 2021 às 13:02 #64239
Lucas Rodrigues Freitas
ParticipanteOutra parte dele aqui, o site não deixou eu mandar ele todo por isso dividi
if(n1<n2 && n1<n3 && n2<n3){
printf(“MAIOR: %d\n”, n3);
printf(“INTERMEDIARIO: %d\n”, n2); //NUMERO 1 SERÁ O MENOR, NUMERO 2 SERÁ INTERMEDIÁRIO, NUMERO 3 SERÁ O MAIOR
printf(“MENOR: %d\n”, n1);}else if(n2<n1 && n2<n3 && n1<n3){ // NUMERO 2 SERÁ O MENOR, NUMERO 1 SERÁ O INTERMEDIÁRIO, NUMERO 3 SERÁ O MAIOR
printf(“MAIOR: %d\n”, n3);
printf(“INTERMEDIARIO: %d\n”, n1);
printf(“MENOR: %d\n”, n2);}else if(n3<n1 && n3<n2 && n2<n1){ // NUMERO 3 SERÁ O MENOR, NUMERO 2 SERÁ O INTERMEDIÁRIO, NUMERO 1 SERÁ O MAIOR
printf(“MAIOR: %d\n”, n1);
printf(“INTERMEDIARIO: %d\n”, n2);
printf(“MENOR: %d\n”, n3); -
2 de abril de 2021 às 13:03 #64240
Lucas Rodrigues Freitas
ParticipanteEsse é o código todo
#include<stdio.h>
#include<stdlib.h>
#include<locale.h>int main () {
setlocale(LC_ALL, “Portuguese”);
int n1, n2, n3;
printf(“<<< EX027 – Três valores em ordem >>>\n\n”);
printf(“Me diga três números e eu colocarei em ordem pra você!!\n\n”);printf(“Digite o primeiro número: “);
fflush(stdin);
scanf(“%d”, &n1);
printf(“Digite o segundo número: “);
fflush(stdin);
scanf(“%d”, &n2);
printf(“Digite o terceiro número: “);
scanf(“%d”, &n3);
printf(“——————————————————–\n”);if(n1<n2 && n1<n3 && n2<n3){
printf(“MAIOR: %d\n”, n3);
printf(“INTERMEDIARIO: %d\n”, n2); //NUMERO 1 SERÁ O MENOR, NUMERO 2 SERÁ INTERMEDIÁRIO, NUMERO 3 SERÁ O MAIOR
printf(“MENOR: %d\n”, n1);}else if(n2<n1 && n2<n3 && n1<n3){ // NUMERO 2 SERÁ O MENOR, NUMERO 1 SERÁ O INTERMEDIÁRIO, NUMERO 3 SERÁ O MAIOR
printf(“MAIOR: %d\n”, n3);
printf(“INTERMEDIARIO: %d\n”, n1);
printf(“MENOR: %d\n”, n2);}else if(n3<n1 && n3<n2 && n2<n1){ // NUMERO 3 SERÁ O MENOR, NUMERO 2 SERÁ O INTERMEDIÁRIO, NUMERO 1 SERÁ O MAIOR
printf(“MAIOR: %d\n”, n1);
printf(“INTERMEDIARIO: %d\n”, n2);
printf(“MENOR: %d\n”, n3);}else if(n1<n2 && n1<n3 && n3<n2){
printf(“MAIOR: %d\n”, n2);
printf(“INTERMEDIARIO: %d\n”, n3); // NUMERO 1 SERÁ O MENOR, NUMERO 3 SERÁ O INTERMEDIÁRIO, NUMERO 2 SERÁ O MAIOR
printf(“MENOR: %d\n”, n1);}else if(n3<n1 && n3<n2 && n1<n2){
printf(“MAIOR: %d\n”, n2);
printf(“INTERMEDIARIO: %d\n”, n1); //NUMERO 3 SERÁ O MENOR, NUMERO 1 SERÁ O INTERMEDIÁRIO, NUMERO 2 SERÁ O MAIOR
printf(“MENOR: %d\n”, n3);
} -
5 de abril de 2021 às 10:06 #64353
Tutora Mayla
MestreLucas, o seu código está quase todo certo, faltou apenas contemplar o caso onde a ordem fica 231.
Gostaria de acrescentar uma outra forma de olhar para as condições aninhadas que vão te ajudar a não repetir tanto testes lógicos.Por exemplo:
Em vez de fazer
if(n1<n2 && n1<n3 && n2<n3)
pode ser feitoif(n1>n2) if(n2>n3) if(n1>n3) else else else
Imagine que em vez de 3 números fosse necessário ordenar 5 números, já seriam 120 possibilidades ficando cada vez mais difícil testar uma a uma com tantos testes lógicos numa condição só, condições aninhadas podem ajudar um pouco nesse problema.
Dê uma olhada neste tópico de Programação Básica Duvida enorme sobre ex. 25, lá há uma questão muito parecida para qual eu dei uma explicação bem completa, pode te ajudar aqui também.
Ressalto que o seu código está praticamente certo, estou apenas apresentando uma forma de melhora-lo e evoluir com seus conhecimentos.
Faltou muito pouco para o exercício estar completamente certo, continue se dedicando assim e estará cada vez melhor!
Se houver quaisquer dúvidas estamos a disposição para ajuda-lo.
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.