-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path3-MarquezElizabeth-Bubble.c
More file actions
77 lines (72 loc) · 3.26 KB
/
Copy path3-MarquezElizabeth-Bubble.c
File metadata and controls
77 lines (72 loc) · 3.26 KB
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
/* Elizabeth Márquez Gómez
Principios de Programación 2020-1
Generación 17
Licenciatura en Ciencias Genómicas
Universidad Nacional Autónoma de México */
//Este programa recibe un conjunto de numeros entre 1-10,000 elementos, en un rango de -20,000-20,000. Y los ordena por Bubble sort.
#include <stdio.h>
int main() {
int vec[10000], lenght=0, aux=0, num=0, i, j, l, fail, win=0;
//DESCRIPCIÓN DEL PROGRAMA
printf("Este programa recibe un conjunto de numeros enteros con signo y se encarga de ordenarlos de menor a mayor.\n");
//RECEPCIÓN DE LOS DATOS DEL CONJUNTO POR EL USUARIO
while (!win){
fail = 0;
printf("Ingrese la cantidad de numeros enteros que desea ordenar, el conjunto puede contener entre 1 y 10,000 elementos.\n");
scanf("%d", &lenght);
//VALIDAR QUE EL NÚMERO DE ELEMENTOS DEL CONJUNTO NO SEA MAYOR AL LÍMITE SUPERIOR
if(lenght > 10000){
printf("El numero de elementos es superior al limite establecido.\n Ingrese nuevamente el numero de elementos a ordenar.\n");
fail = 1;
}
//VALIDAR QUE EL NÚMERO DE ELEMENTOS DEL CONJUNTO NO SEA MENOR AL LÍMITE INFERIOR
if (lenght < 1) {
printf("El numero de elementos es inferior al limite establecido.\n Ingrese nuevamente el numero de elementos a ordenar.\n");
fail = 1;
}
win = (!fail) ? 1:0;
}
printf("Ingrese los elementos del conjunto a ordenar, recuerde que los numeros deben estar en un rango entre -20,000 y 20,000.\n");
//ESTE CONTADOR SE UTILIZA PARA INSERTAR LOS ELEMENTOS AL VECTOR DEL CONJUNTO
for (i = 0; i < lenght; i++) {
scanf("%d", &num);
fflush(stdin);
//VALIDAR QUE EL NUMERO ENTRE EN EL RANGO
if (num > 20000 || num < -20000) {
printf("El numero no entra en el rango establecido entre -20,000 y 20,000. Ingrese un numero dentro del rango.\n");
i-=1;
}
else
vec[i] = num; //SI ES CORRECTO, LO INGRESA AL VECTOR
}
//ORDENAMIENTO BURBUJA
for (j = 1; j < lenght; j++)
for (l = 1; l <= lenght-j; l++)
if (vec[l-1] > vec[l]) {
aux = vec[l-1];
vec[l-1] = vec[l];
vec[l] = aux;
}
//MOSTRAR CONJUNTO ORDENADO AL USUARIO
printf("El conjunto ordenado es:\n");
printf("{");
for (i = 0; i < lenght; i++)
printf("%d, ", vec[i]);
printf("}");
printf("\n");
return 0;
}
/* ------DICCIONARIO DE VARIABLES------
+----MAIN----+
*NOMBRE* *TIPO* *FUNCIÓN*
vec Entera tipo vector Almacenará hasta 10,000 números enteros
lenght Entera Almacena el tamaño del vector para el conjunto
aux Entera temporal Hacer el intercambio de valores en el ordenamiento
num Entera Recibe el elemento del usuario para agregarlo al conjunto
i Entera Se usa en el contador para insertar los elementos al vector y en el contador para mostar los elementos
del conjunto ya ordenado
j Entera Se utiliza en el contador externo para el ordenamiento
l Entera Se utiliza en el contador interno para el ordenamiento
fail Entera de estado Revisa si hay alguna falla en las validaciones
win Entera de estado Controla el exito en las validaciones
*/