fork download
  1. #include <stdio.h>
  2.  
  3. void printUnique(int* in, int n, int* out)
  4. {
  5. printf("* -----------------\n");
  6. printf("* numero de items de entrada: %d\n", n);
  7.  
  8. for (int i = 0; i < n ; i++)
  9. printf("* in[%d] = %d\n", i, in[i]);
  10.  
  11. for (int i = 0; i < n; i++)
  12. {
  13. out[i] = in[i];
  14.  
  15. for (int j = i + 1; j < n; j++)
  16. {
  17. if (in[i] == in[j])
  18. {
  19. // numeros em i e i+1 sao iguais, entao a partir de i+1,
  20. // deslocar todos os numeros 1 posicao 'a esquerda,
  21. // matando o numero repetido em i+1, e perdendo o ultimo
  22. // numero 'a direita...por isso, la' em baixo n vai precisar
  23. // ser decrementado, e j tambem vai precisar ser decrementado,
  24. // para comparar o numero em i com o novo numero em i+1
  25. for (int k = j+1; k < n; k++)
  26. in[k-1] = in[k];
  27. n--; // total de numeros diminuiu
  28. j--; // precisa testar de novo a mesma posicao
  29. } // if
  30. } // for j
  31. } // for i
  32.  
  33. printf("* numero de items unicos: %d\n", n);
  34. for (int i = 0; i < n; i++)
  35. {
  36. printf("* out[%d] = %d\n", i, out[i]);
  37. }
  38. }
  39.  
  40. int main(void)
  41. {
  42. int n;
  43. int in[10];
  44. int out[10];
  45.  
  46. printUnique(in, 0, out);
  47.  
  48. in[0] = 1;
  49. printUnique(in, 1, out);
  50.  
  51. in[0] = 1; in[1] = 1;
  52. printUnique(in, 2, out);
  53.  
  54. in[0] = 1; in[1] = 2;
  55. printUnique(in, 2, out);
  56.  
  57. in[0] = 1; in[1] = 1; in[2] = 1;
  58. printUnique(in, 3, out);
  59.  
  60. in[0] = 1; in[1] = 2; in[2] = 2;
  61. printUnique(in, 3, out);
  62.  
  63. in[0] = 1; in[1] = 2; in[2] = 3;
  64. printUnique(in, 3, out);
  65. }
Success #stdin #stdout 0s 2168KB
stdin
Standard input is empty
stdout
* -----------------
* numero de items de entrada: 0
* numero de items unicos: 0
* -----------------
* numero de items de entrada: 1
* in[0] = 1
* numero de items unicos: 1
* out[0] = 1
* -----------------
* numero de items de entrada: 2
* in[0] = 1
* in[1] = 1
* numero de items unicos: 1
* out[0] = 1
* -----------------
* numero de items de entrada: 2
* in[0] = 1
* in[1] = 2
* numero de items unicos: 2
* out[0] = 1
* out[1] = 2
* -----------------
* numero de items de entrada: 3
* in[0] = 1
* in[1] = 1
* in[2] = 1
* numero de items unicos: 1
* out[0] = 1
* -----------------
* numero de items de entrada: 3
* in[0] = 1
* in[1] = 2
* in[2] = 2
* numero de items unicos: 2
* out[0] = 1
* out[1] = 2
* -----------------
* numero de items de entrada: 3
* in[0] = 1
* in[1] = 2
* in[2] = 3
* numero de items unicos: 3
* out[0] = 1
* out[1] = 2
* out[2] = 3