Dev - C++ - [DUDA] Obtener valores NO repetidos de un arreglo en C POR FAVOOORRR!!!!

 
Vista:
Imágen de perfil de Brandon

[DUDA] Obtener valores NO repetidos de un arreglo en C POR FAVOOORRR!!!!

Publicado por Brandon (4 intervenciones) el 30/03/2016 01:15:19
Hola. Tengo una grandisima duda que no he podido resolver. El problema es que necesito obtener los valores que no se repiten de un arreglo de enteros.

Por ejemplo A[5]={1,3,4,3,5};
deseo obtener los que no se repiten y guardarlo en otro arreglo.
Quedaría algo así "No repetidos: 1, 4, 5";

Espero y me puedan ayudar :') Se los agradecería mucho

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
int A[100], c;
 
//n es la longitud del array de numeros ingresados por el usuario 
 
for(i=0; i<n; i++){
for(j=i; j>=0; j--){
if(A == A[j]){
}else{
c++;
}
}
}
 
int C[100];
 
for(i=0; i<c; i++){
for(j=i; j>=0; j--){
if(A == A[j]){
}else{
C = A;
u++;
if(C==c){
break;
}
}
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 338
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

[DUDA] Obtener valores NO repetidos de un arreglo en C POR FAVOOORRR!!!!

Publicado por Martín (158 intervenciones) el 30/03/2016 05:35:21
Te paso una solución, que creo en principio no parece muy fácil, pero creo que vale la pena detenerse a ver cómo funciona.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <stdlib.h>
 
int compara (const void * a, const void * b)
{
  return ( *(int*)a - *(int*)b );
}
 
int main()
{
    int* ppio, *fin, *i;
    int A5[] = {1, 3, 4, 3, 5};
 
    ppio = A5;
    fin = A5 + 5;
    i = ppio;
 
    qsort (A5, 5, sizeof(int), compara);
 
    while(++ppio != fin) {
        if(!(*i == *ppio))
            *(++i) = *ppio;
    }
 
    printf("No repetidos: ");
    for(ppio = A5 ; ppio <= i; ++ppio)
        printf("%d; ", *ppio);
    printf("\n");
 
    return 0;
}

Salida:
1
No repetidos: 1; 3; 4; 5;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Brandon

[DUDA] Obtener valores NO repetidos de un arreglo en C POR FAVOOORRR!!!!

Publicado por Brandon (4 intervenciones) el 30/03/2016 18:59:06
Gracias a ambos. Ya se encuentra solucionado el problema :D :D :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Brandon

[DUDA] Obtener valores NO repetidos de un arreglo en C POR FAVOOORRR!!!!

Publicado por Brandon (4 intervenciones) el 30/03/2016 19:00:11
Muchas gracias Martín. Ya está solucionado el problema. Gracias por tu ayuda :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

[DUDA] Obtener valores NO repetidos de un arreglo en C POR FAVOOORRR!!!!

Publicado por aguml (522 intervenciones) el 30/03/2016 10:25:31
Algo sencillo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#define MAX 5
 
int main ()
{
   int A[MAX]={1,2,3,4,3};
   int B[MAX]={0};
   int j,k,contador,noRepetidos=0;
 
   for(j=0;j<MAX-1;j++){
      contador=0;
      for(k=0;k<MAX;k++){
         if(k!=j && A[j]==A[k])
            contador++;
      }
      if(contador==0){
         B[noRepetidos]=A[j];
         noRepetidos++;
      }
   }
   printf("No repetidos: ");
   for(j=0;j<noRepetidos;j++)
      printf("%i; ",B[j]);
   return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Brandon

[DUDA] Obtener valores NO repetidos de un arreglo en C POR FAVOOORRR!!!!

Publicado por Brandon (4 intervenciones) el 30/03/2016 19:00:57
Muchas gracias aguml. Me sirvió mucho tu aporte :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar