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

Não consigo passar struct para função em C


dededin

Pergunta

Eu não consigo passar a struct para funçao ...

Devo salvar o valor digitado na struct e depois passar para a funçao verificar se é par, se for ira para outra funçao para dividi-la por 2...

#include <stdio.h>
#include <stdlib.h>

struct dados{
int numero;
char nome[5];
};

void manipula_um_par (int *a){
    *a = *a/2;
}

int *manipula_pares (struct dados x[10]){
    int z;
    for(z=0;z<10;z++){
        if (x[z].numero %2==0){
            manipula_um_par(&x[z].numero);
        }
    }
    return x[10].numero;
}

int main(){
    struct dados v[10];
    int x;
    for(x=0;x<10;x++){
        printf("\nDigite o nome do %d aluno: ",x+1);
        fflush(stdin);
        fgets(v[x].nome, 20, stdin);
        printf("\nDigite o %d numero: ",x+1);
        scanf("%d",&v[x].numero);
        }
   *manipula_pares(&v[10].numero);
    for(x=0;x<10;x++){
    printf("--- %d ",v[x].numero);
    }

    return 0;
}

OBG quem puder!!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
#include <stdio.h>
#include <stdlib.h>

#define TAM 10    //Tamanho do vetor de structs
#define ITE 3   //representa o numero de iterecoes que vai realizar cad laço for. Serve para limitar o numero de provas a realizar e assim n ter de preencher tantas vezes em cada caso de teste.

struct dados {
    int numero;
    char nome[50];
};

void manipula_um_par ( int *a ) {
    if ( *a%2 == 0 )
        *a = *a / 2;
}

void manipula_pares ( struct dados x[10] ) {
    
    int z;
    
    for ( z = 0; z < 10; z++ ) {
        if ( x[z].numero % 2 == 0 ) {
            manipula_um_par ( &x[z].numero );
        }
    }
    
    //return &x[10].numero;
}

int main() {
    struct dados v[TAM];
    int x;
    
    for ( x = 0; x < ITE; x++ ) {
        printf ( "\nDigite o nome do %d aluno: ", x + 1 );
        fflush ( stdin );
        fgets ( v[x].nome, 20, stdin );
        printf ( "\nDigite o %d numero: ", x + 1 );
        scanf ( "%d", &v[x].numero );
    }
    
    manipula_pares ( v );
    
    for ( x = 0; x < ITE; x++ ) {
        printf ( "--- %d ", v[x].numero );
    }
    
    return 0;
}

 

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...