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.
Respostas
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