Ir ao conteúdo
  • Cadastre-se

Função em c


Posts recomendados

Olá, Lu.

 

Se eu entendi direito, o problema é criar um vetor que contém partes, e cada parte tem um valor N que aparece N+1 vezes, e a primeira parte apresenta N = 1. É isso? Se for isso mesmo, sabemos que há uma entrada apenas: o número de partes. A função em C então começa assim:

int* criar_vetor(int partes)
{
  // alocar o vetor
  // preencher o vetor
  // retornar o vetor
}

Onde está a sua dúvida?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Você pode trabalhar da seguinte maneira.

Criando um vetor para armazenar os valores iniciais e outro vetor para armazenar os valores repetidos.

A rotina para preencher esse segundo vetor pode ser feita por dois "for()" em sequencia, onde o primeiro as posições do vetor inicial e o segundo fará a repetição relativa a cada número inserido.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Você pode usar a seguinte logica.

int* criar_vetor(int numero_de_partes)
{
  // calcular o tamanho do vetor:
  int tamanho_do_vetor = 0;
  for (i vai de 1 a numero_de_partes, intervalo fechado)
      tamanho_do_vetor += (i + 1);

  // alocar o vetor:
  int* vetor = malloc(tamanho_do_vetor multiplicado pelo tamanho de um int);

  // preencher o vetor:
  int indice_atual = 0; // vamos percorrer todas as posições do vetor
  int valor_atual = 1; // o primeiro número do vetor é 1
  int numero_de_insercoes = 0; // vamos lembrar quantas vezes o último número foi inserido
  enquanto (indice_atual < tamanho_do_vetor) {
      vetor[indice_atual] = valor_atual;
      incrementar numero_de_insercoes;
      se (numero_de_insercoes == valor_atual + 1) {
          incrementar valor_atual;
          numero_de_insercoes = 0;
      }
      incrementar indice_atual;
  }

  // retornar o vetor:
  return vetor;
}

Resta agora traduzir para C, depois é só chamar a função e imprimir cada elemento com printf. Ah, e não se esqueça de liberar a memória com free.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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!