Ir ao conteúdo
  • Cadastre-se

AnderJack

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Bom dia! Não estou conseguindo esvaziar a fila na "void esvaziar_fila()". Quando utilizo a opção de esvaziar a fila parece que esvazia mas os dados seguem impressos e não somem. Travei legal... #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <string.h> //Constante que define o tamanho máximo da estrutura de dados #define tamanho 5 //Declaração do tipo_fila: estrutura de dados struct tinformacoes{ char ra_aluno[10]; char arq[10]; char ext_arq[10]; char matri_prof[10]; }; struct tfila{ struct tinformacoes dados[tamanho]; int ini; int fim; }; //Variaveis globais struct tfila fila; struct tinformacoes informações; int op; //Prototipação void fila_entrar(); void fila_sair(); void fila_mostrar(); void menu_mostrar(); void esvaziar_fila(); int main (){ setlocale(LC_ALL, "portuguese"); op = 1; fila.ini = 0; fila.fim = 0; while (op != 0) { system("cls"); fila_mostrar(); menu_mostrar(); scanf("%d", &op); switch (op) { case 1: fila_entrar(); fflush(stdin); break; case 2: fila_sair(); fflush(stdin); break; case 3: esvaziar_fila(); fflush(stdin); break; default: printf("===OPÇÃO INVÁLIDA!=== \n"); system("pause"); break; } } return(0); } //Adicionar um elemento no final da Fila void fila_entrar(){ if (fila.fim == tamanho){ printf("\nA fila está cheia!\n\n"); system("pause"); } else{ printf("\nDigite o RA do aluno: "); scanf("%s", &fila.dados[fila.fim].ra_aluno); fflush(stdin); printf("\nDigite o nome do arquivo: "); scanf("%s", &fila.dados[fila.fim].arq); fflush(stdin); printf("\nDigite a extensão do arquivo: "); scanf("%s", &fila.dados[fila.fim].ext_arq); fflush(stdin); printf("\nDigite a matrícula do professor: "); scanf("%s", &fila.dados[fila.fim].matri_prof); fflush(stdin); system("cls"); fila.fim++; } } void fila_sair(){ if (fila.ini == fila.fim){ printf("\nA fila está vazia!\n\n"); system("pause"); system("cls"); } else{ int i; for (i = 0; i < tamanho; i++){ fila.dados[i] = fila.dados[i+1]; } fila.dados[fila.fim]; fila.fim--; } } void esvaziar_fila(){ if (fila.fim == fila.ini){ printf("\nA fila está vazia!\n\n"); system("pause"); } else{ while (fila.ini != fila.fim){ fila.fim--; } system("cls"); } } void fila_mostrar(){ int i; printf(""); for (i = 0; i < tamanho; i++) { printf("RA do aluno: %s \n", fila.dados[i].ra_aluno); printf("Nome do arquivo: %s \n", fila.dados[i].arq); printf("Ext. Arquivo: %s \n", fila.dados[i].ext_arq); printf("Matrícula do professor: %s \n", fila.dados[i].matri_prof); printf("------------------------------\n"); } printf("\n\n"); } void menu_mostrar(){ printf("========SISTEMA ACADÊMICO========\n"); printf("\n"); printf("1 - Inserir um elemento na fila\n"); printf("2 - Remover um elemento da fila\n"); printf("3 - Esvaziar a fila\n"); printf("4 - Encerrar o programa\n"); printf("\n"); printf("Escolha uma opção\n"); }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...