Dado un vector de números enteros eliminar los valores ceros, si los tuviere
Sea A=[12,4,0,45,3,0,67,0,1] eliminado se tiene A=[12,4,45,3,67,1]
Sea A=[12,4,0,45,3,0,67,0,1] eliminado se tiene A=[12,4,45,3,67,1]
#include <stdio.h>
#define MAX 100
int a[MAX];
void leer_vector( int a[]){
int i,n;
do {
printf("Ingrese cantidad de elementos menor a 100: ");
scanf("%d",&n);
} while( (n<0)||(n>MAX) );
printf("Ingrese los valores...\n");
for(i=1;i<=n;i++)
{ printf("A[%d]= ",i);
scanf("%d",&a[i]);
}
a[0]=n;
}
void mostrar_vector( int a[] ){
int i,n=a[0];
for(i=1;i<=n;i++)
printf(" - %d ",a[i]);
}
int eliminar( int a[], int i ){
int e,k,n=a[0];
if(i<1 || i>n)
e=-1;
else
if(i==n){
e=a[n];n--;
}else{
e=a[i];
for(k=i;k<=n-1;k++)
a[k]=a[k+1];
n--;
}
a[0]=n;
return e;
}
void busca_y_elimina(int a[]){
int i,e=0,n=a[0];
bool sw=false;
for(i=1;i<=n;i++){
if(a[i]==e){
sw=true;
eliminar(a,i);
n=a[0];
i--;
}
}
if(sw==false)
printf("\nElemento cero=0 no encontrado");
}
int main() {
printf("\nELIMINA CEROS EN UN VECTOR\n");
leer_vector(a);
printf("\nVector original: \n");
mostrar_vector(a);
busca_y_elimina(a);
printf("\nVector sin ceros: \n");
mostrar_vector(a);
printf("\n");
return 0;
}
Comentarios