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 3 anos, 7 meses atrás por Tutora Mayla.
-
AutorPosts
-
-
2 de abril de 2021 às 13:00 #64237Lucas Rodrigues FreitasParticipante
Boa 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 #64238Lucas Rodrigues FreitasParticipante
o 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 #64239Lucas Rodrigues FreitasParticipante
Outra 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 #64240Lucas Rodrigues FreitasParticipante
Esse é 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 #64353Tutora MaylaMestre
Lucas, 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.