Ir ao conteúdo
  • Cadastre-se

Larissapereir

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

posts postados por Larissapereir

  1. Olá, o problema é o seguinte: tenho a main com a seguinte implementação

     

    #include <bits/stdc++.h>
    #include "Raios.hpp"
    using namespace std;
    
    
    int main(){
        
    
        int n;
        cin >> n;
    
        Raios R(500,500);
    
        for(int i = 0; i < n; i++){
            int x, y;
            cin >> x >> y;
            R.add(x,y);
        }
    
        cout << R.mesmo_lugar() << endl;
    
    
    }

     

    Tenho que implementar a estrutura abaixo:

    #ifndef RAIOS_HPP
    #define RAIOS_HPP
    
    #include <bits/stdc++.h>
    
    using namespace std;
    
    class Raios{
    
        private:
            int n, m;
        public:
        
        Raios(int n, int m){ 
            this->n = n;
            this->m = m;
        }
    
        void add(int x, int y){
            
        }
    
        int mesmo_lugar(){
            //Caiu no mesmo lugar retorna 1, caso contrário retorna 0 
          if() return 1;
          else return 0;
        }
    };
    
    
    #endif

    Na função add(int x, int y) tenho que armazenar o quadrante que caiu o raio no quadrante X,Y e na função mesmo_lugar() devolver 1 se dois raios caíram no mesmo lugar e 0 caso contrário, mas não sei como implementá-las, alguém pode me ajudar, por favor?

  2. Meu código já está fazendo as viradas no array, porém preciso printar na tela uma sequência de viradas que resulte na pilha ordenada. Por exemplo:

    Exemplo 1

    Exemplo de entrada:

    5

    5 1 2 3 4

    Exemplo de Saída:

    1 2 0

     

    Exemplo 2

    Exemplo de entrada:

    5

    5 4 3 2 1

    Exemplo de Saída:

    1 0

     

    Meu código:

    #include <stdlib.h> 
    #include <stdio.h> 
    
    /* Inverte o array[0..i] */
    void virar(int arr[], int i) { 
        int temp, start = 0; 
        while (start < i) 
        { 
            temp = arr[start]; 
            arr[start] = arr[i]; 
            arr[i] = temp; 
            start++; 
            i--; 
        } 
    } 
    
    //Retorna o índice do elemento máximo no array[0..n-1]  
    int findMax(int arr[], int n) { 
        int mi, i; 
        for (mi = 0, i = 0; i < n; ++i) 
            if (arr[i] > arr[mi]) 
                mi = i; 
    
        return mi; 
    } 
    
    // A principal função que sorteia o array usando a função virar
    void tapiocaSort(int *arr, int n) {  
        for (int curr_size = n; curr_size > 1; --curr_size) { 
            //Encontra o índice do elemento máximo do array[0..curr_size-1] 
            int mi = findMax(arr, curr_size);
            //Move o elemento máximo para o final da matriz atual, se ainda não estiver no final 
            if (mi != curr_size-1) { 
               //Para mover para o final do array, primeiro move-se o número máximo para o início  
                virar(arr, mi); 
                //Agora move o número máximo para o final, revertendo o array atual 
                virar(arr, curr_size-1); 
            } 
        } 
    }  
    //Função para imprimir o array de tamanho n
    void printArray(int arr[], int n) 
    { 
        for (int i = 0; i < n; ++i) 
            printf("%d ", arr[i]); 
    } 
    
    int main() { 
        int n;
        scanf("%d", &n);
        
        int vetor[n];
        int size = 0;
        int value = 0;
        //enquanto conseguir ler valores antes de chegar no fim do arquivo
        while(scanf("%d ", &value) > 0) {
        vetor[size++] = value;
        } 
        
        tapiocaSort(vetor, n);
        puts("Sorted Array "); 
        printArray(vetor, n); 
        return 0; 
    } 

     

  3. Como faço para imprimir os índices originais depois que o vetor estiver ordenado. Meu professor orientou a criar um vetor para guardar os índices, porém não sei como acessar o número do índice. Segue abaixo o código:

     

    #include <stdio.h>
    
    void ordenar_vetor(int [], int);
    
    int main(void){
       
        int n;
        scanf("%d", &n);
        
        int A[n];
        int size = 0;
        int value = 0;
        //enquanto conseguir ler valores antes de chegar no fim do arquivo
        while(scanf("%d ", &value) > 0) {
        A[size++] = value;
        }
           
        /* ordena o vetor em ordem crescente */
        ordenar_vetor(A, n);
       
        /* mostra o vetor v ordenado */
        for(int i = 0; i < n; i++){
            printf("%d ", A[i]);
        }    
           
        printf("\n");
        return 0;
    }
    
    void ordenar_vetor(int v[], int tamanho)
    {
         int i, j, temp;
         
         for(i = 0; i < tamanho - 1; i++){
                 
             for(j = 0; j < tamanho - 1; j++){
                 if(v[j] > v[j + 1]){
                     temp = v[j];
                     v[j] = v[j + 1];
                     v[j + 1] = temp;
                 }
             }
         }
    }


    Exemplo de entrada:

    5

    4 5 3 7 1

    Exemplo de Saída:

    4 2 0 1 3

     

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!