Ir ao conteúdo

Posts recomendados

Postado

Olá, boa tarde.Gostaria de ajuda para excluir um registro. Já encontrei em outros tópicos algumas soluções, porém não consigo aplica-las pois não tenho o conhecimento de funções tipo, realloc , fread, fclose,free, entre outros. Então gostaria também da explicação de como se usa cada função que utilizarem para solucionar o problema.  O codigo da parte onde tenho duvida:

typedef struct {
        int nconta;
        char nome[200];
        float saldo;
}CONTA;
//Definição da variavel global
CONTA cad[15];
int n,op;
//Declaração da subrotina
CONTA cadastro();
CONTA exclui();
CONTA visu();
.
.
.
//Subrotina para excluir a conta com o menor saldo
CONTA exclui(){
        //Declracao de variaveis
        int i,menor,num,ex;
        menor=0;
        for(i=0;i<n; i++){
                if(menor<cad[i].saldo){
                        menor=cad[i].saldo;
                        num=i;
                }
        }
//parte que exclui o registro com o menor saldo ??
    }

 

Postado
//Subrotina para excluir a conta com o menor saldo
CONTA exclui(){
        //Declracao de variaveis
        int i,menor,num,ex;
        menor=cad[0].saldo;
		num=0;
        for(i=1;i<n; i++){
                if(cad[i].saldo < menor){
                        menor=cad[i].saldo;
                        num=i;
                }
        }
		                    
//parte que exclui o registro com o menor saldo ??
		for (i=num; i < n-1; i++) {
          cad[i] = cad[i+1];
        }                   
        n--;  
    }

Acredito que assim irá funcionar. O algoritmo desloca os elementos do array para a esquerda e reduz o tamanho máximo n. Note, porém, que o tamanho em memória permanece o mesmo, apenas o último fica "escondido". Ex:

[2 3 4 1 6 9 2 3 5 16]
n = 10
Excluir o quarto elemento (o no. 1 - o menor deles)
[2 3 4 6 9 2 3 5 16] 16 - esse ultimo não fica mais acessível
n = 9

Não sei se era isso que queria dizer...

OBS.: Corrigi também um erro de lógica no seu algoritmo para indentificar o menor saldo.

  • Amei 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!