Foros del Web » Programación para mayores de 30 ;) » C/C++ »

vectores

Estas en el tema de vectores en el foro de C/C++ en Foros del Web. Hola a todos. Soy nuevo en el foro así que aprobecho este primer mensaje para presentarme y decirles a aqui estoy a su entera disposición. ...
  #1 (permalink)  
Antiguo 27/07/2011, 09:20
 
Fecha de Ingreso: julio-2011
Ubicación: Valencia
Mensajes: 5
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta vectores

Hola a todos.
Soy nuevo en el foro así que aprobecho este primer mensaje para presentarme y decirles a aqui estoy a su entera disposición. Espero poder ayudar y aprender de los mejores. Dicho esto a ver si me pueden ayudar con mi primera duda. Soy principiante en el C++ y trado de escribir un programa que busque cierto valor contenido en un vector y me indique cuantas veces aparece. Este es mi código pero no consigo correjir los errores. Me echais un cable??

#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <vector>
#include <math.h>

#define n


int creacion(int v[n]);
int busqueda(int y,int v[n]);
int main(void);

int creacion(int v[n])
{
int x,i;

for(i=0; i<=n; i++)
{
cout<<"Introduzca el elemento"<<i<<endl;
cin>>x;
v[i]=x;
}

}

int busqueda(int y,int v[n])
{
int contador,i;

contador=0;
for (i=1 ; i<=n ; i++)
{
if(v[i]==y)
{
contador=contador+1;
}
else
{
contador=contador;
}
}
return contador;
}

int main(void)
{
int y,res,n;
cout<<"Cuantos elementos tenemos?"<<endl;
cin >>n;

int v[n];
creacion(v);
cout<<"Que elemento desea contar?"<<endl;
cin>>y;
res=busqueda(y,v);
cout<<"El resultado es"<<res<<endl;
system ("pause");
return 0;
}

Muchas gracias de antemano!!!
  #2 (permalink)  
Antiguo 27/07/2011, 11:32
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: vectores

Mira el principal problema es que la variable n la tienes mal definida. Deberias pasarla por argumento a las demas funciones. Y no con un define como hiciste.

Si uqeres usar un define entonces no podes pedir la cantidad de elementos. Quedaria fijo para toda las ejecuciones del programa.

Mira como lo cambie un poco:


Código C++:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #include <string>
  6. #include <vector>
  7. #include <math.h>
  8.  
  9. using namespace std;
  10.  
  11.  
  12. int creacion(int n , int v[]);
  13. int busqueda(int n ,int y,int v[]);
  14. int main(void);
  15.  
  16. int creacion(int n , int v[])
  17. {
  18. int x,i;
  19.  
  20. for(i=0; i<=n; i++)
  21. {
  22. cout<<"Introduzca el elemento"<<i<<endl;
  23. cin>>x;
  24. v[i]=x;
  25. }
  26.  
  27. }
  28.  
  29. int busqueda(int n , int y,int v[])
  30. {
  31. int contador,i;
  32.  
  33. contador=0;
  34. for (i=1 ; i<=n ; i++)
  35. {
  36. if(v[i]==y)
  37. {
  38. contador=contador+1;
  39. }
  40. else
  41. {
  42. contador=contador;
  43. }
  44. }
  45. return contador;
  46. }
  47.  
  48. int main(void)
  49. {
  50. int y,res,n;
  51. cout<<"Cuantos elementos tenemos?"<<endl;
  52. cin >>n;
  53.  
  54. int v[n];
  55. creacion(n,v);
  56. cout<<"Que elemento desea contar?"<<endl;
  57. cin>>y;
  58. res=busqueda(n,y,v);
  59. cout<<"El resultado es"<<res<<endl;
  60. system ("pause");
  61. return 0;
  62. }
  #3 (permalink)  
Antiguo 27/07/2011, 16:01
 
Fecha de Ingreso: julio-2011
Ubicación: Valencia
Mensajes: 5
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: vectores

Hermano muchas gracias. No solo me resolviste el problema sino que ademas te explicas estupendamente. El paso por argumento no lo tenia muy claro porque el libro que uso no se explica muy claro. Pero tu eres un figura!!!!
  #4 (permalink)  
Antiguo 28/07/2011, 11:10
 
Fecha de Ingreso: julio-2011
Ubicación: Valencia
Mensajes: 5
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: vectores

Oye y como podemos hacer para escribir el vector de una sola vez en lugar de pedir los datos uno por uno?? Por ejemplo, imagina que en lugar de buscar un numero dentro de un vector lo que quiero es buscar una letra en una palabra. No puedo escribir la palabra de golpe en vez de letra por letra??
  #5 (permalink)  
Antiguo 28/07/2011, 12:19
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: vectores

Si puedes pero debes trabajar con string o cadena de caracteres (char *).
Busca sobre esos tipos de datos.

Etiquetas: contador, programa, vectores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:35.