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

Não consigo achar o erro! C++/Estrutura de dados/Fila


Gaahl

Pergunta

Boa noite, fiz um algorítimo de estrutura de dados. Coloquei todo meu conhecimento nele. Não estou conseguindo achar o erro. Deixo o enunciado do exercício abaixo! Se puderem me ajudar fico agradecido! 

"Faça um programa que crie duas filas F1 e F2, de tamanho 10, cada. Leia 20 números inteiros e, se o número lido for par, insira-o na fila F1 e, se for ímpar, na fila F2. Na sequência, caso o número lido seja múltiplo de 3, retirar um elemento da fila F1, armazenando-o em uma variável auxiliar e, depois, escreva-o no vídeo e insira-o na fila F2. Caso o número lido seja múltiplo de 5, retirar um elemento da fila F2, armazenando-o em uma variável auxiliar e, depois, escreva-o no vídeo e insira-o na fila F1. Um número pode ser tanto múltiplo de 3 quanto de 5 e, neste caso, apresente uma mensagem no vídeo e não faça nada nas filas, passando para a leitura do próximo número. Pare de ler quando já tiverem sido lidos os 20 números ou quando ocorrer overflow ou underflow em alguma fila."

#include <iostream>

using namespace std;

int main()
{
    int f=-1, r=-1, f1[10], f2[10], cont=0, val=0, aux=0, tam=9;

    do{
        cout << "Informe um valor: " << endl;
            cin >> val;
        cout << " " << endl;

        if(val%2==0){
                if(r==tam){
                    cout << "OVERFLOW!" << endl << endl;
                        return 0;
                }else{
                    f1[++r]=val;
                }
        }else{
            if(r==tam){
                cout << "OVERFLOW!" << endl << endl;
                    return 0;
            }else{
                    f2[++r]=val;
            }
        }

        if(val%3==0){
                if(r==f){
                    cout << "UNDERFLOW!" << endl << endl;
                        return 0;
                }else{
                aux=f1[f+1];
                f++;
                if(f==r){
                    f=r=-1;
                cout << "Valor retirado: " << aux << endl << endl;
                f2[++r]=aux;
                }
                }
        }

        if(val%5==0){
                if(r==f){
                    cout << "UNDERFLOW!" << endl << endl;
                        return 0;
                }else{
                aux=f2[f+1];
                f++;
                if(f==r){
                    f=r=-1;
                cout << "Valor retirado: " << aux << endl << endl;
                f1[++r]=aux;
                }
                }
        }

        if(val%3==0 && val%5==0){
            cout << "Numero mulitplo de 3 e 5!" << endl << endl;
        }

    cont++;
    }while(cont < 20);
    return 0;
}
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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...