elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con vectores c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con vectores c++  (Leído 2,060 veces)
Faceless

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Ayuda con vectores c++
« en: 16 Noviembre 2015, 00:30 am »

Muy buenas, necesito saber como consigo hacer lo siguiente:

-Que pida al usuario ingresar un vector de números enteros positivos.

-Los números del vector se deben ingresar separados por uno o mas espacios.

-El final del vector estar indicado por un numero negativo. El vector se debe cargar dentro de la función
"cargar_vector".


-El tamaño máximo del vector esta indicado por la constante entera MAX=10. Si el usuario ingresa un vector mas grande de lo soportado,el programa deberá utilizar los primeros 10 números.

- Posteriormente, el programa debe imprimir por pantalla los elementos
del vector mediante la función "imprimir_vector".


Lo que necesito ayuda es en lo siguiente:

-Que una variable almacene el vector ingresado, el cual no debe tener mas de 10 numeros, y excluir el numero negativo que se ingresó al final para terminar de ingresarlo en el caso de que se ingresen menos de 10 numeros

y que la otra función imprimir_vector almacene la variable de la función cargar_vector



Ejemplo de funcionamiento:

Ingrese los números del vector: 7 6 5 4 3 2 1 -1

El vector es: 7 6 5 4 3 2 1


Código:
#include <iostream>
#include<iomanip>
using namespace std;
 
void cargar_vector(int [],int);
void imprimir_vector(int [],int);
 
const int MAX=10;
 
int main()
{
 
int vector[MAX];
 
int longitud;
 
 
 
  cargar_vector(vector, longitud);
 
 imprimir_vector(vector, longitud);
 
 
 
 
return 0;
}
 
void cargar_vector(int vector[],int longitud)
{
longitud=0;
    cout<<"Ingrese los numeros del vector: ";
 
 
while(longitud<MAX)
{
cin>>vector[longitud];
 
if(vector[longitud]<0)
{
 
break;
}
 
longitud++;
 
}
 
 
 
}


En línea

Zodiak98

Desconectado Desconectado

Mensajes: 120


Ver Perfil
Re: Ayuda con vectores c++
« Respuesta #1 en: 16 Noviembre 2015, 02:44 am »

y excluir el numero negativo que se ingresó al final para terminar de ingresarlo
Eso me ha confundido. XD

Según lo que entendí lo que puedes hacer es pedir los valores, si es menor que 0 cortas el búcle, y es imposible que ingreses más de 10 valores ya que el búcle te lo prohíbe, una vez llegues ahí se cortará. Y si quieres saber cuántos elementos hay en el arreglo entonces la función cargar_vector hazla entera y retorna el valor de longitud, no tiene mucho sentido que lo pases como parámetro e inmediatamente lo pongas igual a cero. Es decir, quedaría algo así:

Código
  1. int cargar_vector(int vector[])
  2. {
  3. int longitud=1; //El 1 es porque ya contarás al primer elemento
  4.    cout<<"Ingrese los numeros del vector: ";
  5.  
  6. while(longitud<(MAX + 1)) /* el + 1 es porque estamos contando desde 1, si no estaríamos cogiendo solo 9 valores.*/
  7. {
  8.  cin>>vector[longitud];
  9.  
  10.  if(vector[longitud]<0)
  11.  {
  12.  break;
  13.  }
  14.  
  15.  longitud++;
  16.  
  17. }
  18.  
  19. return longitud;
  20. }
  21.  

Y el main quedaría así:
Código
  1. int main()
  2. {
  3.  
  4. int vector[MAX];
  5.  
  6. imprimir_vector(vector, cargar_vector(vector));
  7.  
  8. return 0;
  9. }
  10.  
  11.  

Y imprimir_vector te quedaría así:
Código
  1. void imprimir_vector(int vector[], int longitud) {
  2.     for(int i = 0; i < longitud; ++i) {
  3.          if(vector[i] < 0) {
  4.               vector[i] = 0; // Encontramos un valor negativo y lo sustituimos por 0.
  5.               break;
  6.          }
  7.          cout << vector[i];
  8.     }
  9. }
  10.  

Edit: Una cosa que me he dado cuenta a último momento, en la función main el arreglo está cogiendo 11 valores, no 10, tendrías que hacer MAX igual a 9. Pero entonces quitarías el + 1 que he puesto en el búcle.


« Última modificación: 16 Noviembre 2015, 02:51 am por Zodiak98 » En línea

Zodiak98

Desconectado Desconectado

Mensajes: 120


Ver Perfil
Re: Ayuda con vectores c++
« Respuesta #2 en: 16 Noviembre 2015, 02:50 am »

He presionado "citar" en lugar de editar, vaya torpe. xD
« Última modificación: 16 Noviembre 2015, 02:52 am por Zodiak98 » En línea

Faceless

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Ayuda con vectores c++
« Respuesta #3 en: 16 Noviembre 2015, 04:05 am »

Quizá me explique mal

Lo que debe suceder es esto:

El vector, tiene que tener como máximo 10 valores enteros positivos( puede tener menos valores, no es necesario que sea un vector de 10 números, ni tampoco rellenar con cero )



En el caso de ingresar menos de 10 valores, se debe ingresar un valor negativo cualquiera con el fin de cortar el bucle, y asi quedarnos con un vector de cualquier dimensión menor que 10, pero no se debe incluir el numero negativo, si no los anteriores solamente.



Igual muchas gracias por tu ayuda , por que me quitaste algunas dudas
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda en vectores...!!!
Programación C/C++
Schiffer04 2 2,256 Último mensaje 13 Mayo 2012, 01:57 am
por utz
Ayuda con vectores. « 1 2 »
Programación C/C++
elkiedis 10 6,075 Último mensaje 10 Octubre 2012, 07:19 am
por rir3760
ayuda con vectores c++
Programación C/C++
indict 3 2,370 Último mensaje 15 Noviembre 2012, 09:23 am
por norris
Ayuda con vectores
Programación C/C++
norris 0 1,422 Último mensaje 17 Noviembre 2012, 21:11 pm
por norris
C++ Mas iteradores, con vectores de vectores ¡ juerga !
Programación C/C++
Orubatosu 1 2,613 Último mensaje 4 Diciembre 2014, 17:18 pm
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines