diegomrodrigues

Ordenar vetor de inteiro, dizer quantas vezes num. digitados

Jan 3rd, 2020
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.82 KB | None | 0 0
  1. /**
  2.  * Ordenar um vetor de inteiros
  3.  * O usuário irá digitar os valores do vetor
  4.  * A quantidade de vezes que cada número foi informado pelo usuário
  5.  * será exibida no final
  6.  *
  7.  * Diego Mendes Rodrigues
  8.  *********************************/
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11.  
  12. int main(void) {
  13.   /* Vetor de inteiros - será alocado na memória */
  14.   int *vetor;
  15.  
  16.   /* Variável auxiliar */
  17.   int aux;
  18.  
  19.   /* Perguntar para o usuário o tamanho do vetor */
  20.   int tamanho;
  21.   printf("Informe tamanho do vetor: ");
  22.   scanf("%d", &tamanho);
  23.  
  24.   /* Alocar o vetor na memória */
  25.   vetor = (int *) malloc(tamanho * sizeof(int));
  26.  
  27.   for (int i=0; i<tamanho; i++)
  28.   {
  29.     printf("\nDigite o valor para a posicao %d do vetor: ", i+1);
  30.     scanf("%d",&vetor[i]);
  31.   }
  32.  
  33.   /* Exibir o vetor antes de ordenar */
  34.   printf("\nAntes:\n");
  35.   for(int i=0; i<tamanho; i++)
  36.     printf("%d ", vetor[i]);
  37.  
  38.   /* Ordenar o vetor - Bubble Sort */
  39.   for (int fim=(tamanho-1); fim>=0; fim--)
  40.     for (int i=0; i<fim; i++)
  41.     {
  42.       if (vetor[i] > vetor[i + 1])
  43.       {
  44.         aux = vetor[i];
  45.         vetor[i] = vetor[i + 1];
  46.         vetor[i + 1] = aux;
  47.       }
  48.     }
  49.  
  50.   /* Exibir o vetor ordenado */
  51.   printf("\n\nDepois (ordenado):\n");
  52.   for(int i=0; i<tamanho; i++)
  53.     printf("%d ", vetor[i]);
  54.  
  55.   /* Ver quantas vezes cada número saiu no vetor ordenado */
  56.   printf("\n\nQuantidade de repetições:\n");
  57.   int numero = vetor[0],
  58.     vezes = 1;
  59.   printf("O número %d saiu ", numero);
  60.   for(int i=1; i<tamanho; i++) {
  61.     if (vetor[i] == numero)
  62.       vezes++;
  63.     else {
  64.       numero = vetor[i];
  65.       printf("%d vezes\nO número %d saiu ", vezes, vetor[i]);
  66.       vezes = 1;
  67.     }
  68.   }
  69.   printf("%d vezes\n", vezes);
  70.  
  71.   /* Liberar o espaço alocado na memória pelo vetor */
  72.   free(vetor);
  73.  
  74.   return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment