Mudar posições de um vetor
Boa tarde, estou fazendo um algorítimo mas ele não roda 100% da maneira que devia.
Leia um vetor de 20 posições e o compacte, ou seja, elimine as posições com valor zero avançando uma posição com os valores subsequentes do vetor. Dessa forma, todos os "zeros" devem ficar para o final do vetor.
O que acontece é que se eu digitar apenas um índice de valor 0 ele é enviado para o final do vetor, porém se houverem mais de dois índices com o valor 0, o primeiro toma a posição final do vetor mas os outros continuam no mesmo lugar. Alguém pode me ajudar??
#include <iostream>
#include <stdlib.h>
#include <math.h>
#include <locale.h>
#include <stdio.h>
#include <string.h>
int main (void)
{
setlocale(LC_ALL,"Portuguese");
int vet[20];
int i,aux;
for(i=0;i<20;i++) //entrada de dados
{
printf("Digite o valor da posição %d do vetor: ",i);
scanf("%d",&vet[i]);
}
for(i=0;i<20;i++) //operação realizada
{
if(vet[i]==0)
{
aux=vet[i];
vet[i]=vet[i+1];
vet[i+1]=aux;
}
}
for(i=0;i<20;i++){
printf("VetorFinal [%d] = %d\n",i,vet[i]);
}
}Discussão (0)
Carregando comentários...