Ir para conteúdo
Fórum Script Brasil
  • 0

Recursividade e Structs


beuleal

Pergunta

Olá amigos, eu estou querendo varrer uma struct por recursividade ao invés de loop com for

onde estou errando:

struct func {
       
       char nome[20];
       int rf;
       char cargo[20];
       float salario;

};



int sal_maior=0,sal_menor=999999999;
int rf_maior,rf_menor;

int recur(int j,int n){
     
    func ficha[n];
     
    if (j == n){
          
       return 0;
    
    }
    
    printf("\n%f",ficha[j].salario);
    
    return recur(j+1,n);

}



int main(){
    
   int i=0,n;

   printf("Quantos Funcionarios: ");
   scanf("%d",&n);
   
   func ficha[n];   
    
   for (i=0;i<n;i++){
       
       printf("Nome: ");
       fflush(stdin);
       gets(ficha[i].nome);
       
       printf("Rf: ");
       scanf("%d",&ficha[i].rf);
       
       printf("Cargo: ");
       fflush(stdin);
       gets(ficha[i].cargo);
             
       printf("Salario: ");
       scanf("%f",&ficha[i].salario);
       
   }
   
   recur(0,n);
   
   system("pause");
       

}

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Fiz um aqui com esse protótipo

void recur(struct func ficha[], int i, int n, float *maior)
Onde 'ficha[]' é o vetor de fichas, 'i' é a posição atual do vetor a ser analisada, 'n' é a ultima posição do vetor + 1 (ou seja, o tamanho dele), e *maior é um ponteiro para uma variável que irá possuir o maior salário (deve ser inicializada com zero na função principal). Funções recursivas 'void' são mais fáceis de 'visualizar'. para a chamada da função, usei assim
recur(ficha, 0, n, &maior);

E na função, verifica-se se 'i' é menor que 'n'. Se não for, continua com o código. compara-se 'maior' com o salário da atual ficha. o valor da ficha for maior, atribui-se á 'maior'. Então chama-se a função novamente, enviando os novos parâmetros: incrementa-se 'i' e 'maior

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...