código exercício 027

Home Fóruns Linguagem C código exercício 027

Visualizando 4 respostas da discussão
  • Autor
    Posts
    • #64237

      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.

    • #64238

      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”);

    • #64239

      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);

    • #64240

      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);
      }

    • #64353
      Tutora Mayla
      Mestre

      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 feito

      
      if(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.

Visualizando 4 respostas da discussão
  • Você deve fazer login para responder a este tópico.