trippietiago Posted September 3, 2020 at 11:42 PM Report Share #619273 Posted September 3, 2020 at 11:42 PM Olá a todos, sou iniciante em programação e foi me pedido para a faculdade a construção de um projeto em que envolva um campeonato com 18 equipas, cada equipa com o seu número de jogadores e membros da equipa técnica e as funções pedidas estão relacionadas com a alocação de memoria das equipas, dos jogadores e dos membros. Já fiz a maior parte do trabalho no entanto quando passo do 1o menu, recebo um erro "Run Failed exit value 1" e sem receber erros no codigo em si. Aqui em baixo está um excerto do trabalho, alguém consegue ajudar-me ? #define MAX_INT 30 #define TAM_INICIAL 1 #define TAM_INCREMENTO 3 #define N_EQUIPAS 18 #ifdef __cplusplus extern "C" { #endif typedef struct Jogadores { char nome[MAX_STR]; int nc; //numero da camisola int idade; int durContrato; int altura; int peso; int dispTransf; // 1 - disponivel, 2 - indisp int cartoes; //4 amarelos - ind. prox jogo int dispJogo; //1 - lesionado, 2 - indisp } JOGADOR; typedef struct EquipasTecnicas { char cargo[MAX_STR]; int salario; } EQTEC; typedef struct Clubes { char nomeDiretor[MAX_STR]; char nome[MAX_STR]; int idclube; int realizado; //1 se já se realizou / 0 se ainda n se realizou int pontuacao; int capital; int ngm, ngs; //n golos marcados / n golos sofridos JOGADOR jogador[MAX_INT]; EQTEC eqtec[MAX_INT]; } CLUBE; typedef struct Jogos { int dia, mes, ano; int resultadoEqCasa, resultadoEqFora; int nadeptos; CLUBE *c1, *c2; int pbilhete; //preço medio dos bilhetes } JOGO; typedef struct Ligas { CLUBE clube[18]; JOGO *jogo; } LIGA; /** * Aloca inicialmente a memória necessária para as equipas inseridas na liga * * @param clube apontador duplo para o array de clubes * @param tam_max apontador para o tamanho máximo de clubes * return 1 em caso de sucesso, 0 caso contrário */ int alocaEquipas(CLUBE **clube, int *tam_max) { int res = 1; *clube = (CLUBE *) malloc(N_EQUIPAS * sizeof (CLUBE)); if (*clube == NULL) { printf("Erro ao alocar memória.\n"); res = 0; } else { *tam_max = TAM_INICIAL; } return res; } //erro RUN FAILED /** * Adiciona um clube à liga, se esta não estiver já cheia * * @param liga apontador para a liga * @param quantos apontador para o número atual de equipas inscritas na liga */ void adicionaEquipa(LIGA *liga, int *quantos) { LIGA *novo; int idclube, pos; readInt(&idclube, 1, 18, "Digite o ID do clube: "); pos = pesquisaEquipa(liga, *quantos, idclube); if (pos == -1) { if (*quantos == N_EQUIPAS) { printf("Limite de clubes inscritos na liga atingido.\n"); } else { leEquipa(liga, quantos, idclube); } } else { printf("ID de clube já existente.\n"); } } void leEquipa(LIGA *liga, int *pos, int idclube) { liga->clube[*pos].idclube = idclube; readString(liga->clube[*pos].nome, (MAX_STR - 1), "Nome da equipa: "); liga->clube[*pos].pontuacao = 0; (*pos)++; } int pesquisaEquipa(LIGA *liga, int quantos, int idclube) { int i = 0; while (i < quantos && (*liga).clube[i].idclube != idclube) { i++; } if (i == quantos) { return -1; } else { return i; } } Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now