#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int v[100];
int op, n, c, i, j, vacio = 0, ord, aux, x, linf, lsup, med, sw;
do {
printf("\n====== MENU ======="); printf("\n2. Mostrar Vector"); printf("\n3. Ordenar Vector"); printf("\n4. Buscar un elemento en el Vector"); printf("\n\tDigite su Opción: ==> "); 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 99c = 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) {
}
} 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 = "); 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:
}
} while(op != 5);
return 0;
}
LO HE LOGRADO!!!
Mod: Los códigos deben ir en etiquetas GeSHi