[C con Clase] Ayuda con un programa en C!
Yolmer Rosales
yolmer.rosales en gmail.com
Jue Abr 14 03:01:00 CEST 2016
oye ejecuté tu programa y no borra el cero de cualquier manera no veo un
algoritmo de ordenar
arriba dice que ordena y elimina repetidos tal vez el algoritmo de ordenar
es el que te elimina el cero
El 13 de abril de 2016, 10:28, Ali Rincon <alrincon1963 en hotmail.com>
escribió:
> 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??
>
> Altamente agradecido,
>
> Ali Rincon
>
>
> #include <stdio.h>
> #include <stdlib.h>
>
> /**ordenarvector**/
>
> /**Programa que dado un vector de N-columnas elimina elementos repetidos y
> ordena el vector en orden ascendente**/
>
>
> int main()
> {
> int i,j,k,m,nC,num,cont,repetidos;
> int *vector1;
> int *vector2;
> int *vector3;
> char c;
>
> /**Introduccion del numero de columnas del vector1**/
>
> printf("Introduzca el numero de columnas del vector1: ");
> scanf("%d", &nC);
> printf("\n");
>
> while((c=getchar()) != '\n' && c != EOF);
>
> /**Reserva dinamica de memoria para el vector1[i]**/
>
> vector1=(int *)malloc(nC * sizeof(int *));
>
> if(vector1== NULL)
> {
> printf("Error de memoria\n");
> exit(-1);
> }
>
> /**Introduccion de los valores del vector**/
>
> for(i=0; i<nC; i++)
> {
> printf("Introduzca las componentes del vector1[%d]: ",i+1);
> scanf("%d", &vector1[i]);
> printf("\n");
> }
>
> /**Visualizar el vector**/
>
> printf("vector1 = ");
> for(i=0; i<nC; i++)
> {
> printf("%d ",vector1[i]);
> }
> printf("\n\n");
>
> /**Reserva dinamica de memoria para el vector2[i]**/
>
> vector2=(int *)malloc(nC * sizeof(int *));
>
> if(vector2== NULL)
> {
> printf("Error de memoria\n");
> exit(-1);
> }
>
> /**Reserva dinamica de memoria para el vector3[i]**/
>
> vector3=(int *)malloc(nC * sizeof(int *));
>
> if(vector3== NULL)
> {
> printf("Error de memoria\n");
> exit(-1);
> }
>
> /**Eliminacion de las componentes repetidas en el vector1**/
>
> j=0;
> m=0;
> repetidos=0;
> for(i=0; i<nC; i++)
> {
> cont=0;
> num=vector1[i];
> vector2[j]=num;
> for(k=0; k<nC; k++)
> {
> if(vector2[k]==num)
> {
> cont++;
> }
> }
> if(cont==1)
> {
> vector3[m]=num;
> m++;
> }
> else
> {
> repetidos++;
> }
> j++;
> }
>
> printf("La cantidad de elementos repetidos son: %d",repetidos);
> printf("\n");
> printf("El vectorfinal tendra %d elementos",nC-repetidos);
> printf("\n\n");
>
> /**Visualizar el vector3**/
>
> printf("vector3 = ");
> for(i=0; i<nC-repetidos; i++)
> {
> printf("%d ",vector3[i]);
> }
> printf("\n\n");
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20160413/263e8714/attachment.html>
Más información sobre la lista de distribución Cconclase