<div dir="ltr">oye ejecuté tu programa y no borra el cero de cualquier manera no veo un algoritmo de ordenar<div>arriba dice que ordena y elimina repetidos tal vez el algoritmo de ordenar es el que te elimina el cero</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">El 13 de abril de 2016, 10:28, Ali Rincon <span dir="ltr"><<a href="mailto:alrincon1963@hotmail.com" target="_blank">alrincon1963@hotmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">El siguiente programa elimina las filas repetidas y ordena un vector de 1fila X nColumnas. El problema que tengo es que el programa no funciona cuando se introduce una componente nula, es decir, cero. Por ejemplo, vector1=[1,0,1,6,8] lo ordena como vector3=[1,6,8]. El programa se "come" la componente cero y no se por que lo hace asi. Alguien pudiera ayudarme a ver por que lo hace asi y como se puede solucionar??<br>
<br>
Altamente agradecido,<br>
<br>
Ali Rincon<br>
<br>
<br>
#include <stdio.h><br>
#include <stdlib.h><br>
<br>
/**ordenarvector**/<br>
<br>
/**Programa que dado un vector de N-columnas elimina elementos repetidos y ordena el vector en orden ascendente**/<br>
<br>
<br>
int main()<br>
{<br>
int i,j,k,m,nC,num,cont,repetidos;<br>
int *vector1;<br>
int *vector2;<br>
int *vector3;<br>
char c;<br>
<br>
/**Introduccion del numero de columnas del vector1**/<br>
<br>
printf("Introduzca el numero de columnas del vector1: ");<br>
scanf("%d", &nC);<br>
printf("\n");<br>
<br>
while((c=getchar()) != '\n' && c != EOF);<br>
<br>
/**Reserva dinamica de memoria para el vector1[i]**/<br>
<br>
vector1=(int *)malloc(nC * sizeof(int *));<br>
<br>
if(vector1== NULL)<br>
{<br>
printf("Error de memoria\n");<br>
exit(-1);<br>
}<br>
<br>
/**Introduccion de los valores del vector**/<br>
<br>
for(i=0; i<nC; i++)<br>
{<br>
printf("Introduzca las componentes del vector1[%d]: ",i+1);<br>
scanf("%d", &vector1[i]);<br>
printf("\n");<br>
}<br>
<br>
/**Visualizar el vector**/<br>
<br>
printf("vector1 = ");<br>
for(i=0; i<nC; i++)<br>
{<br>
printf("%d ",vector1[i]);<br>
}<br>
printf("\n\n");<br>
<br>
/**Reserva dinamica de memoria para el vector2[i]**/<br>
<br>
vector2=(int *)malloc(nC * sizeof(int *));<br>
<br>
if(vector2== NULL)<br>
{<br>
printf("Error de memoria\n");<br>
exit(-1);<br>
}<br>
<br>
/**Reserva dinamica de memoria para el vector3[i]**/<br>
<br>
vector3=(int *)malloc(nC * sizeof(int *));<br>
<br>
if(vector3== NULL)<br>
{<br>
printf("Error de memoria\n");<br>
exit(-1);<br>
}<br>
<br>
/**Eliminacion de las componentes repetidas en el vector1**/<br>
<br>
j=0;<br>
m=0;<br>
repetidos=0;<br>
for(i=0; i<nC; i++)<br>
{<br>
cont=0;<br>
num=vector1[i];<br>
vector2[j]=num;<br>
for(k=0; k<nC; k++)<br>
{<br>
if(vector2[k]==num)<br>
{<br>
cont++;<br>
}<br>
}<br>
if(cont==1)<br>
{<br>
vector3[m]=num;<br>
m++;<br>
}<br>
else<br>
{<br>
repetidos++;<br>
}<br>
j++;<br>
}<br>
<br>
printf("La cantidad de elementos repetidos son: %d",repetidos);<br>
printf("\n");<br>
printf("El vectorfinal tendra %d elementos",nC-repetidos);<br>
printf("\n\n");<br>
<br>
/**Visualizar el vector3**/<br>
<br>
printf("vector3 = ");<br>
for(i=0; i<nC-repetidos; i++)<br>
{<br>
printf("%d ",vector3[i]);<br>
}<br>
printf("\n\n");<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" rel="noreferrer" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" rel="noreferrer" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</blockquote></div><br></div>