
21/05/2010, 03:47
|
 | | | Fecha de Ingreso: febrero-2010 Ubicación: Santander/Huelva
Mensajes: 190
Antigüedad: 15 años, 1 mes Puntos: 5 | |
Busqueda de arrays Hola gente.
Tengo un problemilla que estoy haciendo...es un programa en el cual tengo que hacer una busqueda secuencial y me dice la posicion del numero a buscar. Eso me lo hace perfectamente.
Pero lo que quiero hacer ahora, y no me sale muy bien es que me diga cuantos valores hay del numero que yo le digo, y que me cuente, cuantos son mayores y cuales son menores.
pego el codigo:
Código:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <ctype.h>
#define maxi 10
void carga_aleatorios(int[], int, int, int);
void visualizar(int [], int);
void busqueda_secuencial(int [], int, int);
main()
{
char resp=0;
int numeros[maxi];
int ele=0;
int minimo=0;
int maximo=0;
int buscar=0;
do
{
do
{
cout<<"\n\n\n\t";
cout<<"Introduce el numero de elementos a generar (max 10)...";
cin>>ele;
if(ele<1 || ele>maxi)
cout<<"\n\n\t\tError. Numero de elementos no valido";
}while(ele<1 || ele>maxi);
do
{
system("cls");
cout<<"\n\n\t\tIntroduce el rango minimo :";
cin>>minimo;
cout<<"\n\n\t\tIntroduce el rango maximo :";
cin>>maximo;
if(maximo<=minimo)
{
cout<<"\n\n\t\tError. Rangos no validos";
getch();
}
}while(maximo<=minimo);
system("cls");
carga_aleatorios(numeros, ele, minimo, maximo);
do
{
system("cls");
cout<<"\n\n\n\tLa serie generada es: ";
visualizar(numeros,ele);
cout<<"\n\n\n\tIntroduce el numero a buscar: ";
cin>>buscar;
busqueda_secuencial(numeros, ele, buscar);
cout<<"Hay"
cout<<"\n\n\n\n\t";
cout<<"Pulse S para una nueva busqueda con los mismos numeros...";
resp=tolower(getche());
}while(resp=='s');
do
{
cout<<"\n\n\n\n\t\t"<<(char)168<<"Otra serie (S/N)...?";
resp=tolower(getche());
if(resp!='s' && resp!='n')
{
cout<<"\n\n\t\tError. Introduce S/N...";
}
}while(resp!='s' && resp!='n');
}while(resp=='s');
}
/*************************************Funcion de Carga de aleatorios*******************************************************************/
void carga_aleatorios(int numeros[maxi],int ele, int min, int max)
{
srand(time(NULL));
for(int i=0;i<ele;i++)
numeros[i]=rand()% (max-min+1) + min;
return;
}
/********************************************************************Funcion de visualizacion del array**********************************************/
void visualizar(int numeros[], int ele)
{
for(int i=0; i<ele; i++)
cout<<" "<<numeros[i];
return;
}
/**********************************************************************************Funcion de busqueda de un valor*************************************/
void busqueda_secuencial(int numeros[],int ele, int buscar)
{
int contador=0;
cout<<"\n\n\n\t\tPosiciones de valor "<<buscar<<" : ";
for(int i=0;i<ele;i++)
if(numeros[i] ==buscar)
{
contador++;
cout<<(i+1)<<", ";
}
if(contador==0)
cout<<"No existe el numero buscado";
else
//borramos la ultima coma
cout<<"\b\b ";
return;
}
Gracias de antemano |