Jump to content
Sign in to follow this  
r1castro1

Ponteiros com Ordenação

Recommended Posts

:( Olá pessoal, estou aprendendo programação em C/C++ e ainda me perco na resolução de alguns problemas. A questão abaixo, requer eu crie 5 ponteiros e os ordene em forma crescente. Há uma semana que estou nisso. Alguém pode me ajudar?

//Faça um programa usando ponteiros, para ordenar 5 números e mostrá-los ordenados na tela.
//A ordenação deve ser realizada através dos ponteiros. Então é necessário criar cinco ponteiros
 [ code]
#include <stdio.h>

int main()
{
    int a, b, c, d, e; 
int *ponteiro_a = &a, *ponteiro_b = &b, *ponteiro_c = &c, *ponteiro_d = &d, *ponteiro_e = &e; 
int *menor = ponteiro_a, *medio_1 = ponteiro_a, *medio_2 = ponteiro_a, *medio_3 = ponteiro_a, *maior = ponteiro_a;

    printf("Entre com 5 numeros Inteiros [separados por espaços]: ");
    scanf(" %d %d %d %d %d", ponteiro_a, ponteiro_b, ponteiro_c, ponteiro_d, ponteiro_e);

    if(*ponteiro_b > *maior)
        maior = ponteiro_b;
        
    if(*ponteiro_c > *maior)
        maior = ponteiro_c;
        
    if(*ponteiro_d > *maior)
maior = ponteiro_d;
;
if(*ponteiro_e > *maior)
maior = ponteiro_e;     

    if(*ponteiro_b < *menor)
        menor = ponteiro_b;
        
    if(*ponteiro_c < *menor)
        menor = ponteiro_c;
        
    if(*ponteiro_d < *menor)
        menor = ponteiro_d;    
        
    if(*ponteiro_e < *menor)
        menor = ponteiro_e;    

    if(maior != ponteiro_a && menor != ponteiro_a && medio_1 != ponteiro_a)
        medio_2 = ponteiro_a;
    else
    {
     medio_3 = ponteiro_a;
}
   
    if(maior != ponteiro_b && menor != ponteiro_b && medio_1 != ponteiro_B)
        medio_1 = ponteiro_b;
    else
    {
     medio_3 = ponteiro_b;
}  
   
if(maior != ponteiro_c && menor != ponteiro_c && medio_1 != ponteiro_c)
        medio_2 = ponteiro_c;
     else
    {
     medio_3 = ponteiro_c;
}        
      
if(maior != ponteiro_d && menor != ponteiro_d && medio_1 != ponteiro_d)
        medio_2 = ponteiro_d;
     else
    {
     medio_3 = ponteiro_d;
}  

if(maior != ponteiro_e && menor != ponteiro_e && medio_1 != ponteiro_e)
        medio_2 = ponteiro_e;
     else
    {
     medio_3 = ponteiro_e;
}   
   


    printf("Em ordem crescente: %d %d %d %d %d\n", *menor, *medio_1, *medio_2, *medio_3, *maior);
    printf("Em ordem crescente: %d %d %d %d %d\n", *menor, *medio_3, *medio_2, *medio_1, *maior);
    printf("Em ordem crescente: %d %d %d %d %d\n", *menor, *medio_2, *medio_3, *medio_1, *maior);
    printf("Em ordem crescente: %d %d %d %d %d\n", *menor, *medio_1, *medio_3, *medio_2, *maior);  
    printf("Em ordem crescente: %d %d %d %d %d\n", *menor, *medio_2, *medio_1, *medio_3, *maior);      
    printf("Em ordem decrescente: %d %d %d %d %d\n", *maior, *medio_1, *medio_2, *medio_3, *menor);
    printf("Em ordem decrescente: %d %d %d %d %d\n", *maior, *medio_3, *medio_2, *medio_1, *menor); 
    printf("Em ordem decrescente: %d %d %d %d %d\n", *maior, *medio_2, *medio_3, *medio_1, *menor);
    printf("Em ordem decrescente: %d %d %d %d %d\n", *maior, *medio_1, *medio_3, *medio_2, *menor);
    printf("Em ordem decrescente: %d %d %d %d %d\n", *maior, *medio_2, *medio_1, *medio_3, *menor);
    
    return 0;
}
 [ /code]

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Similar Content

    • By Lauts
      programa
      {
          inclua biblioteca Matematica
          
          funcao inicio()
          {
              inteiro hom=0, mul=0, rsim=0, rnao=0, rhsim=0, rmsim=0, n, t=4
              real psim, pnao
              caracter sexo, resp
              (n == t)
          {
              leia ("Informe o Sexo: ", sexo)
              leia ("Gostou do produto (S/N): ", resp)
              se (sexo =='1')
              {
                  hom = hom + 1
                  se (resp == '1')
              {
                  rmnao = rmnao + 1
              }
              }
              senao
              {
                  se (sexo == '2')
              {
                  mul = mul + 1
                  se (resp == '2')
              {
                  rhsim = rhsim + 1    
              }    
              }
              }
                  se (resp == '1')
              {
                  rsim = rsim +1            
              }
                  senao
              {
                  se (resp == '2')
              {
                  rnao = rnao +1
              }
              }
          n = n  + 1
          }
              psim = 100 * (rmsim / t)
              pnao = 100 * (rhnao / t)
          }
              escreva ("Quantidade de pessoas que responderam sim: ", rsim)
              escreva ("Quantidade de pessoas que responderam não: ", rnao)
              escreva ("Porcentagem de mulheres que responderam sim: ", psim)
              escreva ("Porcentagem de homens que responderam não: ", pnao)
      }
    • By cristhianbrd
      Crie uma estrutura chamada pessoa que seja
      capaz de armazenar o nome, o endereço, o CPF
      e a idade de 5 pessoas. fiz ate uma parte do código mas fica dando uns erros 
      #include <iostream> #include <cstdlib> #include <cstring> typedef struct pessoa { char nome[60]; char endereco[60]; float cpf; int idade; }Pessoa; int main (){ cout << "Digite O Nome De alguem" << endl; cin >> pessoa.nome; cout << "Digite o Endereço Da Pessoa" << endl; cin >> pessoa.endereco; cout << "Digite o Cpf da Pessoa" << endl; cin >> pessoa.cpf ; cout << "Digite a Idade Da Pessoa" << endl; cin >> pessoa.idade ;  
    • By Leidsman217
      Ola a todos, tenho uma duvida quanto a programação de Arduíno. Gostaria de saber se o seguinte código foi escrito de forma correta  ? Agradeço desde já a atenção de todos !
       
         
    • By JoaoV-26
      olá,
       
      Eu preciso fazer uma matriz 7x7 que imprima caractere 'x' e 'o' porém o x precisar ser nas duas diagonais, fazer a matriz e imprimir o x em uma diagonal eu consegui porém não estou conseguindo de jeito nenhum imprimir na outra diagonal, a matriz precisa sair assim: 
       
      x o o o o o x
      o x o o o x o
      o o x o x o o 
      o o o x o o o
      o o x o x o o
      o x o o o x o
      x o o o o o x
       
      a minha está saindo assim (foto em anexo)
       
      Meu código:

       
      #include<stdio.h> int main(){          int i, j;     char str[2]="x", str1[2]="o";                for(i=1; i<=7; i++){         for(j=1;j<=7; j++)              if(i+j == 7+1){                      printf("%s", str);                      }else                      printf("%s", str1);                      printf("\n");          }      } Alguém pode me ajudar, como faço para outra diagonal sair 'x' também ?????

    • By TheRuivo
      Olá,
      estou tentando criar um código em c++ com funções e procedimentos a um tempo, só que eles sempre retornam 0, se alguém puder me ajudar, agradeço. ;)
      Segue o código:
      #include <iostream>
      #include <stdlib.h>
      #include <stdio.h>
      #include<locale.h>
      #include<math.h>
      #include<cmath>
      using namespace std;
      void Triangulo(int la)
      {
          double b,h,r;
              printf("Por favor digite o valor da base e da altura: \n");
              scanf("%i %i",&b,&h);
              r=(b*h)/2;
              printf("A área é: %i \n",r);
      }
      double Quadrado(int la, int b, int h)
      {
          double r;
          printf("Por favor digite o valor da base e da altura: \n");
          scanf("%i %i",&b,&h);
          r=b*h; 
          printf("A área é: %i ",r);
          return r;
      }
      int Menu(int la)
      {
          int b,h;
          switch(la)
          {
              case 3:
                  printf("É um triângulo \n");
                  Triangulo(la);
                  break;
              case 4:
                  printf("É um quadrilátero \n");
                  Quadrado(la,b,h);
                  break;
              case 5:
                  printf("É um pentágono \n");
                  break;
              case 6:
                  printf("É um hexágono \n");
                  break;        
          }
          return la;
      }
      int main(int argc, char** argv) {
          setlocale(LC_ALL, "Portuguese");
          int b,h,r,l;
          printf("Por favor insira a quantidade de lados da figura(3-6): ");
          scanf("%i",&l);
          Menu(l);
          
          
          
             
          system("pause");
          return 0;
      }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.