Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(NULL));
int v[100];
int op, n, c, i, j, vacio = 0, ord, aux, x, linf, lsup, med, sw;
do {
printf("\n====== MENU =======");
printf("\n1. Cargar Vector");
printf("\n2. Mostrar Vector");
printf("\n3. Ordenar Vector");
printf("\n4. Buscar un elemento en el Vector");
printf("\n5. Salir");
printf("\n\tDigite su Opción: ==> ");
scanf("%d", &op);
switch (op) {
case 1: // Carga el Vector
ord = 0;
vacio = 1;
for (i = 0; i < 100; ++i) {
do {
n = rand() % 100; // Genera números aleatorios entre 0 y 99
c = 0;
for(j = 0; j < i; j++) {
if (n == v[j]) {
c++;
}
}
}while(c != 0);
v[i] = n;
}
printf("\n\t--< Vector Cargado Correctamente >--\n");
break;
case 2: // Muestra el Vector
if (vacio == 1) {
for (i = 0; i < 100; ++i) {
printf("%d ", v[i]);
}
} else {
printf("\n\t--< El vector está vacío >--\n");
}
break;
case 3: // Ordena el Vector
if (vacio == 1) {
for (i = 0; i < 99; i++) {
for (j = 0; j < 99-i; j++) {
if (v[j] > v[j+1]) {
aux = v[j];
v[j] = v[j+1];
v[j+1] = aux;
}
}
}
ord = 1;
printf("\n\t--< Vector Ordenado >--\n");
} else {
printf("\n\t--< El vector está vacío >--\n");
}
break;
case 4: // Búsqueda Binaria
if (vacio == 1) {
if (ord == 1) {
printf("\n\t Leer elemento a buscar X = ");
scanf("%d", &x);
linf = 0;
lsup = 99;
sw = 0;
do {
med = (linf + lsup) / 2;
if(x == v[med]) {
sw = 1;
} else {
if (x > v[med]) {
linf = med+1;
} else {
lsup = med;
}
}
} while(linf <= lsup && sw == 0);
if(sw == 1) {
printf("\n\t El elemento X = %d se encuentra en la posición %d del vector", x, med);
} else {
printf("\n\tEl elemento X = %d no se encuentra en el vector", x);
}
} else {
printf("\n\n\t=========> El Vector NO está Ordenado <=========");
}
} else {
printf("\n\t--< El vector está vacío >--\n");
}
break;
case 5:
printf("FIN DEL PROCESO");
}
} while(op != 5);
return 0;
}
LO HE LOGRADO!!!
Mod: Los códigos deben ir en etiquetas GeSHi