Ir ao conteúdo
  • Cadastre-se

Larissapereir

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Tudo que Larissapereir postou

  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. Galerinha, é o seguinte, minha função matchingStrings retorna um vetor de números inteiros representando a frequência de ocorrência de cada sequência de consultas. Eu preciso de uma condição para imprimir os itens, de forma que, ao imprimir o último item não print na tela o último espaço " ". Quem puder me ajudar, agradeço demais! Segue o código: #include <bits/stdc++.h> using namespace std; vector<int> matchingStrings(vector<string> strings, vector<string> consulta) { unordered_multiset<string> m; int ms=0; vector<int> res; int y; for(int i=0;i<strings.size();i++) { m.insert(strings[i]); } for(int j=0;j<consulta.size();j++) { y=(m.count(consulta[j])); res.push_back(y); } return res; } int main() { int size; cin >> size; vector<string> vetorConsulta(size); for(int i = 0; i < size; i++) cin >> vetorConsulta[i]; int tamanho; cin >> tamanho; vector<string> vetorBusca(tamanho); for(int i = 0; i < tamanho; i++) cin >> vetorBusca[i]; for(int item : matchingStrings(vetorConsulta, vetorBusca)){ cout << item << " "; } cout << endl; }
  3. 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; }
  4. 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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!