Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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]

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.

  • Conteúdo Similar

    • Por thiago_tw
      eu to com uma tarefa que preciso de ajuda, já tentei alguns algoritmos que achei por aqui mas nunca dá certo, mandei a imagem do que é para ser feito, agradecido se me ajudarem

    • Por Sharank
      Strcat Function In C++
       
      I'm new to C and C++ programming, can anyone give me a hint on what I'm doing wrong here. I'm trying to write to concat function that takes to pointers to chars and concatenates the second to the first. The code does do that, but the problem is that it adds a bunch of junk at the end.
       
      For instance, when passing the arguments - "green" and "blue", the output will be "greenblue" plus a bunch of random characters. I also wrote the strlen function that strcat uses, which I will provide below it for reference. I'm using the online compiler at InterviewBit The exact instructions and specification is this:
       
      int main(int argc, char** argv)
      {
      const int MAX = 100;
       
      char s1[MAX];
      char s2[MAX];
       
      cout << "Enter your first string up to 99 characters. ";
      cin.getline(s1, sizeof(s1));
      int size_s1 = strlen(s1);
      cout << "Length of first string is " << size_s1 << "\n";
       
      cout << "Enter your second string up to 99 characters. ";
      cin.getline(s2, sizeof(s2));
      int size_s2 = strlen(s2);
      cout << "Length of second string is " << size_s2 << "\n";
      cout << " Now the first string will be concatenated with the second
      string ";
      char* a = strcat(s1,s2);
       
      for(int i = 0; i<MAX; i++)
      cout <<a;
       
      // system("pause");
      return 0;
      }
       
      //strcat function to contatenate two strings
      char* strcat(char *__s1, const char *__s2)
      {
      int indexOfs1 = strlen(__s1);
      int s2L = strlen(__s2);
      cout <<s2L << "\n";
      int indexOfs2 = 0;
      do{
      __s1[indexOfs1] = __s2[indexOfs2];
      indexOfs1++;
      indexOfs2++;
      }while(indexOfs2 < s2L);
       
       
      return __s1;
      }
       
      //Returns length of char array
      size_t strlen(const char *__s)
      {
      int count = 0;
      int i;
      for (i = 0; __s != '\0'; i++)
      count++;
      return (count) / sizeof(__s[0]);
       
      }
    • Por Geralt96
      Bom dia. Alguém pode me dá uma ajuda pra desenvolver essa questão, por gentileza?

      Aqui está ela: https://projecteuler.net/problem=6

      A soma dos quadrados dos primeiros dez números naturais é: 1² + 2² + ... 10² = 385...
      O quadrado da soma dos dez primeiros números naturais é: (1+2+ ... 10)² = 55² = 3025...
      Portanto, a diferença entre a soma dos quadrados dos primeiros dez números naturais e o quadrado da soma é: 3025 - 385 = 2640.
      Encontre a diferença entre a soma dos quadrados dos primeiros cem números naturais e o quadrado da soma.
    • Por roberson abalaid
      #include <stdio.h>
      #include <stdlib.h>
      int arr[3][5];
      int main(){
          
          printf("Favor inserir os dados...\n");
          
          for(int i = 0; i < 3; i++){
              for(int j = 0; j < 5; j++){
                  scanf("%d", &arr[j]);
              }
          }
          
            printf("os valores inseridos foram...\n");
          
          for(int i = 0; i < 3; i++){
              for(int j = 0; j < 5; j++){
                  printf("  %d  ", arr[j]);
              }
              printf("\n");
          }
          return 0;
      }
    • Por Motta
      O algoritmo que procura padrões ocultos na maior base de dados de sonhos do mundo
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.