Lógica, perguntado por pauloleoncio2012, 4 meses atrás

Apresente uma solução em algoritmo, escrito na linguagem de programação C, que resolva o problema abaixo: Entrada: Um vetor de tamanho cinco (5) alocado dinamicamente sendo preenchido pelo usuário, lendo um número de cada vez. Saída: Ao digitar o sexto (6o) elemento a ser salvo no vetor já cheio, criar uma lógica que permita que o vetor alocado dinamicamente cresça de tamanho 2x a cada vez que ele fique totalmente cheio.

Soluções para a tarefa

Respondido por vbonat
0

Podemos resolver este problema com um algoritmo em linguagem de programação C e utilizando uma função recursiva. O código completo se encontra na imagem em anexo.

Algoritmo em linguagem de programação C

Vamos utilizar recursividade para resolver o problema, escrevendo um função recursiva para preencher o vetor. Vamos também considerar um tamanho máximo de 20 elementos (5x2x2) para o vetor. Isso está definido na constante MAX.

#include <stdio.h>

#include <math.h>

#define MAX 20

int main () {

   //Função recursiva para preencher o vetor

   void preenche_vetor(int v[], int ultimo, int tamanho){  

       if (tamanho <= MAX){ //Considera um tamanho máximo para o vetor

           for(int i = ultimo; i<tamanho; i++){

               printf("Entre um número inteiro: \n");

               scanf("%d", &v[i]);

           }

           ultimo = tamanho;

           tamanho = 2*tamanho;

           preenche_vetor(v, ultimo, tamanho);

       }

       else //Avisa se o vetor estiver cheio

           printf("O vetor atingiu o tamanho máximo");  

   }

   

   int v[MAX];

   int ultimo = 0;

   int tamanho = 5; // Tamanho inicial 5

   preenche_vetor(v, ultimo, tamanho);

   return 0;

}

Saiba mais sobre programação C em: https://brainly.com.br/tarefa/53953225

#SPJ1

Anexos:
Perguntas interessantes