Buenas en el codigo que dejo presente me sale la posicion 100 y 99 y cuando construyo el vector en codigo dependiendo como lo cree el usuario me salen los valores como hago para acomodar estos errores?
include
include
using namespace std;
int main (){ setlocale(LC_ALL, “esp”); int karreglo, numero, n_condicional, i; // Declaración de Variables Usadas int j, menor; int Arreglo_Usuario[100]={0};// Declaración de Arreglo construido por el usuario int dato; int inf,sup,mitad;
// Inicialización de Variables karreglo=0; // Indica el tamaño de la matriz (Ingresado por El Usuario) numero=0; // Variable de lectura de términos para llenar la matriz, n_condicional=0; // Número N que determina la condición P i=0; // Contador j=0; // Contador menor=0; // Variable para Ordenamiento cout<<"\n ¿De que tamaño desea generar el vector? "; cin>>karreglo; if(karreglo<=0){ while(karreglo<=0){ cout<<" Ese tamaño no es válido para un arreglo, ingrese nuevamente..."; cin>>karreglo; }
}
do{ cout<<"\n Introduzca el primer término del arreglo, (que determinará la condición P) "; cin>>n_condicional; Arreglo_Usuario[i]=n_condicional; }while(i=0); i++; for(i=1;i<karreglo;i++){ cout<<"\n Introduzca el "<<i+1<<" término del arreglo "; cin>>numero; Arreglo_Usuario[i]=numero; } cout<<"\n El arreglo generado es:"; cout<<"{"; for(i=0;i<karreglo;i++){ cout<<" "<<Arreglo_Usuario[i]<<" "; }
//Busqueda Binaria
cout << "\n Indique un valor a buscar" << endl; cin >> dato; char band= 'F'; inf=0; sup=100; while((inf<=sup)&&(i<100)){ mitad=(inf+sup)/2; if(Arreglo_Usuario[mitad]==dato){ band='V'; break; } if(Arreglo_Usuario[mitad]>dato){ sup=mitad-1; mitad=(inf+sup)/2; } if(Arreglo_Usuario[mitad]<dato){ inf=mitad+1; mitad=(inf+sup)/2; } i++; } if(band='V'){ cout<<"Encontraste el valor y es: "<<mitad<<endl; } else { cout<<"No se encontro ningun valor"<<endl; }
return 0;}