Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PERGUNTA PerdirDados()
- {
- PERGUNTA *P = (PERGUNTA)malloc(sizeof(PERGUNTA));
- P->codigoperg = (char *)malloc(4);
- P->enunciado = (char *)malloc(285);
- P->LResp = (ListaRespostas *)malloc(sizeof(ListaRespostas));
- P->LResp->inicio = (ELEMENTO_RESPOSTAS *)malloc(sizeof(ELEMENTO_RESPOSTAS));
- P->LResp->fim = (ELEMENTO_RESPOSTAS *)malloc(sizeof(ELEMENTO_RESPOSTAS));
- P->LResp->inicio->info = (Resposta *)malloc(sizeof(Resposta));
- P->LResp->fim->info = (Resposta *)malloc(sizeof(Resposta));
- P->LResp->inicio->info->Codigo = (char *)malloc(4);
- P->LResp->fim->info->Codigo = (char *)malloc(4);
- P->LResp->inicio->info->Resp_pergunta = (char *)malloc(248);
- P->LResp->fim->info->Resp_pergunta = (char *)malloc(248);
- P->LResp->inicio->prox = NULL;
- P->LResp->fim->prox = NULL;
- P->LResp->inicio->ant = NULL;
- P->LResp->fim->ant = NULL;
- ELEMENTO_RESPOSTAS *E = P->LResp->inicio = P->LResp->fim, *AUX;
- printf("\nInsira o enunciado: ");
- fgets(P->Enunciado);
- printf("\nInsira a dificuldade: ");
- scanf("%d", &P->dificuldade);
- printf("\nInsira quantas respostas quer: ");
- scanf("%d", &P->LResp->nel);
- printf("\nInsira a resposta certa: ");
- fgets(E->info->Resp_pergunta);
- fprintf(E->info->Codigo, "R1");
- for(int i = 1; i<P->LResp->nel; i++)
- {
- AUX = E;
- E->prox = (ELEMENTO_RESPOSTAS *)malloc(sizeof(ELEMENTO_RESPOSTAS));
- E=E->prox;
- E->ant = AUX;
- E->info->Codigo = (char *)malloc(4);
- E->info->Resp_pergunta = (char *)malloc(248);
- P-LResp->fim = E;
- printf("\nInsira a proxima resposta: ");
- fgets(E->Resp_Pergunta);
- fprintf(E->info->Codigo, "R%d", i);
- }
- return P;
- }
- void AdicionarPergunta(PERGUNTA *P, LISTAPERGUNTAS *LP)
- {
- LP->fim->prox = (ELEMENTO_PERGUNTA *)malloc(sizeof(ELEMENTO_PERGUNTA));
- ELEMENTO_PERGUNTA *AUX = LP->fim;
- LP->fim = LP->fim->prox;
- LP->fim->ant = AUX;
- LP->fim->prox = NULL;
- LP->fim->info = P;
- LP->n_elementos++;
- }
- void RemoverPergunta(char *Codigo, LISTAPERGUNTAS *LP)
- {
- ELEMENTO_PERGUNTA *AUX = LP->inicio;
- ELEMENTO_RESPOSTAS *AUX2, *AUX3;
- while(AUX)
- {
- if(stricmp(AUX->info->codigoperg, Codigo) == 0)
- {
- if(AUX->prox)
- AUX->ant = AUX->prox;
- else
- {
- AUX->ant->prox = NULL;
- LP->fim = AUX->ant;
- }
- free(AUX->info->codigoperg);
- free(AUX->info->enunciado);
- AUX2 = AUX->LResp->inicio;
- for(int i=0; i<AUX->LResp->nel; i++)
- {
- free(AUX2->Codigo);
- free(AUX2->Resp_pergunta);
- AUX3 = AUX2;
- AUX2 = AUX2->prox;
- free(AUX3);
- }
- free(AUX->LResp->inicio);
- free(AUX->LResp->fim);
- }
- }
- LP->n_elementos--;
- }
Advertisement
Add Comment
Please, Sign In to add comment