Ir para conteúdo
Fórum Script Brasil

leowf

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre leowf

leowf's Achievements

0

Reputação

  1. Com esse seu código você sempre perderá o valor do <ultimo-1> elemento. A cada passada do loop você atribui 0 nessa posição. Eu não entendi se você tem o tamanho do vetor (qtd de valores preenchidos) ou se você usa um valor de controle no fim do vetor, para marcar onde ele acaba. Também não entendi se você quer remover todas as ocorrências de um certo "código" do vetor, ou se todas. Eu fiz esse código rapidinho, ele utiliza um sentinela no fim e remove apenas a primeira incidência do valor. Espero que ajude: #include <stdio.h> int main (int argc, char* argv[]) { int vetor[100] = {0,5,10,20,30, -42}; // preeencher vetor com scanf int remove, sentinela, i; remove = 5; // preeencher depois com scanf sentinela = -42; // você disse que usa um controle, ele // deve estar sempre presente no fim do vetor i = 0; while (vetor[i] != sentinela) { if (vetor[i] == remove) { vetor[i] = vetor[i + 1]; if (vetor[i] != sentinela) vetor[i + 1] = remove; } i++; } for (i = 0; vetor[i] != sentinela; i++) printf("%d\n", vetor[i]); return 0; }
×
×
  • Criar Novo...