Ir ao conteúdo

C Alterações e Queue ou Fila


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

Boas,

 

Eu sou muito novo na programação, por isso talvez estas questões sejam muito estupidas mas aqui ficam:

 

1º - Imaginando que faço uma estrutura de um cliente em que tem o nome, numero telemovel e a idade. Coloco os dados, mas por acaso mais tarde reparo que me enganei no nº telemóvel e pretendo alterar. Como faço?

2º - Pretendo criar uma Queue/Fila/Lista de espera. Já vi alguns tutoriais na internet, mas não consegui encontrar nenhum que explicasse como eliminar um componente que não seja o 1º ou o ultimo. Por exemplo, 5 pessoas na fila e quero remover o 3º.

 

Cumprimentos,

  • Curtir 1
  • Solução
Postado

@MrCricket    para alterar algum dado você procura no vetor de struct qual a posição que está o dado que quer alterar , e coloca o valor que quiser , como no exemplo o número do celular então use o scanf para inserir novo número ,   e para eliminar algum componente você procura no vetor o dado que quer excluir e a posição onde se encontra esse elemento , em seguida copie o que está na posição seguinte a ele em cima dele e assim com os próximos até o final do vetor e decremente o contador ,    poste seu código para vermos como está e em que podemos ajudar   .

Postado
Em 19/12/2018 às 01:29, devair1010 disse:

@MrCricket    para alterar algum dado você procura no vetor de struct qual a posição que está o dado que quer alterar , e coloca o valor que quiser , como no exemplo o número do celular então use o scanf para inserir novo número ,   e para eliminar algum componente você procura no vetor o dado que quer excluir e a posição onde se encontra esse elemento , em seguida copie o que está na posição seguinte a ele em cima dele e assim com os próximos até o final do vetor e decremente o contador ,    poste seu código para vermos como está e em que podemos ajudar   .

 
 

 

typedef struct
{
    int a;
    char b[MAX_STRING];
    int c;
    char d[MAX_STRING];
}tipoE;

void alterarA(int quantA, tipoe vetorE[MAX_E])
{
    int c, a;
    char op1;
    if ((quantA = 0))
    {
        printf("\n\nAVISO: NAO EXISTEM A \n\n");
    }
    else
    {
        int pos = -1;
        do
        {
            A = lerInteiro("\nIntroduza A que deseja alterar: ", MIN_A, MAX_A);
            pos = procuraA(vetorA, quantidadeA, A);
            if ((pos = -1))
            {
                op1 = menuAlterarA();
                switch (op1)
                {
                case 'N':
                    lerString("\nIndique o novo nome: ", vetorA[pos].a, MAX_STRING);
                    break;
                case 'C':
                    vetorA[pos].C = lerInteiro("\nIntroduza o novo C: ", 0, 999999999);
                    break;
                case 'T':
                    lerString("\nIndique o novo D do A: ", vetorA[pos].d, MAX_STRING);
                    break;
                case 'R':
                    break;
                default:
                    printf("Essa opcao nao e valida!");
                    break;
                }
            }
            else
            {
                printf("\n\nAVISO: NAO EXISTE NENHUM A COM ESSE A. TENTE NOVAMENTE!");
            }

        }    while (pos != -1 && op1 != 'R');

    }

}

 

Funciona. Mas não muda os dados do utilizador

 

 

 

  • Curtir 1
Postado

Olá todos.

 

Em 17/12/2018 às 23:54, MrCricket disse:

Pretendo criar uma Queue/Fila/Lista de espera. Já vi alguns tutoriais na internet, mas não consegui encontrar nenhum que explicasse como eliminar um componente que não seja o 1º ou o ultimo. Por exemplo, 5 pessoas na fila e quero remover o 3º.

 

Vai depender do tipo de estrutura que o exercício está cobrando, por exemplo, em uma fila o primeiro a entrar é o primeiro a sair esse é o paradigma das filas para qualquer outro comportamento diferente desse não teríamos mais um algoritmo do tipo Queue. Então, para mim, você vai resolver desfileirando (tirando da fila e colocando em outra) todos os itens exceto aquele que se deseja excluir, pois esse não será enfileirado (posto na nova fila).

 

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!