while(band==false){
if(vector[ i]==num){ //Al compilarlo aquí me marca el error
band = true;
}
i++;
}
Te dará error porque la variable i, en ese punto del programa, ya no existe.
Tú la has declarado previamente en el bucle for
for (int i=0;i<tam;i++){
vector [ i]=rand()%(100-1);
}
Pero eso implica que su "ámbito" se reduce a lo que ocurre DENTRO de ese bucle for.
Fuera de ese bucle, la variable i no existe.
Entonces, para poder usarla de nuevo, has de declararla nuevamente y mejor si lo haces en el cuerpo del programa principal, para que su "ámbito" abarque todo el código en adelante.
Además de declararla, conviene inicializarla a valor 0, para que la búsqueda comience desde el principio del vector.
Por cierto, durante la búsqueda solo debería incrementarse cuando no se encuentra coincidencia.
Si encuentra coincidencia y también se incrementa, luego no informará correctamente de la posición donde ha encontrado el número que se busca.
Además, el bucle while ha de detenerse en el caso de que ya se haya recorrido TODO el vector, es decir, cuando i sea igual a tam.
No podemos dejarlo solo en manos de la variable "bandera", porque si nos piden buscar un número que no existe, bandera NUNCA será
true y el bucle podría resultar infinito.
cout<<"\nIngrese el numero que quieres buscar: ";
cin>>num;
int i = 0;
while(band==false && i < tam){
if(vector[ i]==num){ //Al compilarlo aquí me marca el error
band = true;
}
else
i++;
}
if (band==false){
cout<<"\nEl numero a buscar no existe en el Vectro";
}
else if(band==true){
cout<<"\nEl numero a sido encontadro en la posicion: "<<i-1;
}