Você está aqui: C ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Uma função recursiva que conta quantas vezes um valor inteiro k ocorre em um vetor de inteiros - Exercícios Resolvidos de CQuantidade de visualizações: 520 vezes |
Pergunta/Tarefa: Escreva uma função recursiva que conta quantas vezes um valor inteiro k ocorre em um vetor de 10 inteiros. Sua função deverá ter a seguinte assinatura: // função recursiva que recebe um valor e um vetor e devolve // quantas vezes o valor se repete no vetor informado int quant_repeticoes(int indice, int valor, int vetor[]){ // sua implementação aqui } Sua saída deverá ser parecida com: Informe o 1 valor: 2 Informe o 2 valor: 7 Informe o 3 valor: 4 Informe o 4 valor: 7 Informe o 5 valor: 1 Informe o valor a ser pesquisado no vetor: 7 O valor informado se repete 2 vezes. Veja a resolução comentada deste exercício usando C: ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> // define o tamanho do vetor #define TAM_VETOR 5 // função recursiva que recebe um valor e um vetor e devolve // quantas vezes o valor se repete no vetor informado int quant_repeticoes(int indice, int valor, int vetor[]){ if(indice == TAM_VETOR - 1){ // caso base...hora de parar a recursividade if(vetor[indice] == valor){ return 1; // mais um repetição foi encontrada } } else{ // dispara mais uma chamada recursiva if(vetor[indice] == valor){ // houve mais uma repetição return 1 + quant_repeticoes(indice + 1, valor, vetor); } else{ return 0 + quant_repeticoes(indice + 1, valor, vetor); // não repetiu } } return 0; // só para deixar o compilador satisfeito...esta linha nunca é executada } int main(int argc, char *argv[]) { // vamos declarar um vetor de 10 inteiros int valores[TAM_VETOR]; int i, valor, repeticoes; // vamos pedir ao usuário que informe os valores do vetor for(i = 0; i < TAM_VETOR; i++){ printf("Informe o %d.o valor: ", (i + 1)); // efetua a leitura do valor informado para a posição atual do vetor scanf("%d", &valores[i]); } // agora vamos pedir para informar o valor a ser pesquisado printf("\nInforme o valor a ser pesquisado no vetor: "); scanf("%d", &valor); // e vamos ver a quantidade de repetições repeticoes = quant_repeticoes(0, valor, valores); printf("O valor informado se repete %d vezes.", repeticoes); printf("\n\n"); system("PAUSE"); return 0; } |
![]() |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
Android Java - Como usar a classe Toast em suas aplicações Android |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |