repl.it
@t3m2/

2018 Bubble sort

C

Bubble sotr using C!!

fork
loading
Files
  • main.c
main.c
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/** * * * * * * * * * * * * * * * * * * * * * * * * *
 *                   BUBBLE SORT                    *
 * (t3m2 :)                                         *
 * Programming Language: C                          *
 * Date: 2018                                       *
 * Made by: t3m2                                    *
 * Copyright ==> Al rights reserved                 *
 *                                                  *
 *                                                  *
 * * * * * * * * * * * * * * * * * * * * * * * * * **/

#include <stdio.h> 
//#include <ctype.h>
# define LONG 100   /* COMPRIMENTO MAXIMO DO VECTOR USADO PARA ARMAZENAR A SEQUÊNCIA!!!!!!!!!!! */
/* sera criado um vect6or com o comprimteno de LONG  e depois se´ra usado uma parte desse vector para armazenar a sequencia e orda-la, é importante que LONG seja suiperior ao comprimento necessario*/
int main(void)
{
  /************************************************/
  float x/*variavel usada para pedir cada numero da sequencia*/ ,aux /*variavel auxiliar para cada troca*/,lista[LONG]={0.,0.};  /* lista por ordenar */
  int c=0, lista_ordenada=0 /* (funcionara com um "contador") representará o indice do ultimo carater da lista que faz parte da sequência */,i,casas; 
  char fim=' ';//variavel para verificar se o utilizador ja acabou de inserir o snumeros da sequencia
  /*************************************************/
  printf("This program sorts a set of real numbers in ascending order using the 'Bubble Sort' algorithm. \n\nEnter the number of decimal places of the numbers in the set: ");
  scanf("%d",&casas);
  putchar('\n');
  do
    {
      printf("Enter a number of the set (enter '0' to finish):");
      scanf(" %f",&x);
      if (x==0)
        {
          c-=1;
          break;
        }
      lista[c]=x;
      c+=1;
    }
  while(1);
  printf("\n\nYour initial set is:\n");
  printf("{");
  for (i=0;i<=c;i++) /*mostar lista*/
    {
      switch(casas)
        {
          case 0: printf("%.0f",lista[i]); break;
          case 1: printf("%.1f",lista[i]); break;
          case 2: printf("%.2f",lista[i]); break;
          case 3: printf("%.3f",lista[i]); break;
          case 4: printf("%.4f",lista[i]); break;
          case 5: printf("%.5f",lista[i]); break;
          case 6: printf("%.6f",lista[i]); break;
          case 7: printf("%.7f",lista[i]); break;
          case 8: printf("%.8f",lista[i]); break;
          case 9: printf("%.9f",lista[i]); break;
          default: printf("%f",lista[i]);
        }
      if (i!=c)
        {
          printf(", ");
        }
    }
  printf("}.");
    
  while (lista_ordenada==0)
    {
      lista_ordenada=1; /* assim é como se estivesse ordenado mas a seguir é verificado para ver se é necessário repetir o ciclo while*/
      for (i=0;i<c;i++)    /* percorre todos os pares da lista*/
        {
          if (lista[i]>lista[i+1]) /*para cada par verifica se está ordenado, se algum não estiver correto percorre o ciclo ate que esse fique*/
            {
              lista_ordenada=0;
            }
        }
        
      for (i=0;i<c;i++) /*percorre cada par da lista*/
        {
          if (lista[i]>lista[i+1])  /* se não estiver ordenado entao troca*/
            {
              aux=lista[i]; /* a trocar... aux é variavel auxiliar*/
              lista[i]=lista[i+1];
              lista[i+1]=aux;
            }
        } 
    }
  
  printf("\n\n\nYour sorted set in ascending order is:\n");    /*mostra a sequencia ordenada*/
  printf("{");
  for (i=0;i<=c;i++) /*mostar lista*/
    {
      switch(casas)
        {
          case 0: printf("%.0f",lista[i]); break;
          case 1: printf("%.1f",lista[i]); break;
          case 2: printf("%.2f",lista[i]); break;
          case 3: printf("%.3f",lista[i]); break;
          case 4: printf("%.4f",lista[i]); break;
          case 5: printf("%.5f",lista[i]); break;
          case 6: printf("%.6f",lista[i]); break;
          case 7: printf("%.7f",lista[i]); break;
          case 8: printf("%.8f",lista[i]); break;
          case 9: printf("%.9f",lista[i]); break;
          default: printf("%f",lista[i]);
        }
      if (i!=c)
        {
          printf(", ");
        }
    }
  printf("}.\n");
}

Fetching token
?