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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


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

Desconectado Desconectado

Mensajes: 15


Ver Perfil
arreglo en c++
« en: 30 Noviembre 2014, 22:23 pm »

el problema es que no me quiere invertir el arreglo y lo que quiero es que al final me muestre el arreglo original y el arreglo invertido
Código
  1. #include<iostream>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. using namespace std;
  6.  
  7. int main(){
  8.           int  j, tam ,num ,i ,vec[30], inverso[30];
  9.           cout<<"ingrese la cantidad de numeros: ";
  10.           cin>>tam;
  11.           for(i=0;i<tam;i++){
  12.            cout<<"ingrese el numero "<<i+1<<": ";
  13.            cin>>vec[i];
  14.           }
  15.           for(i=0; i<tam; i++){
  16.            cout<<vec[i]<<" ";
  17.           }
  18.  
  19.          for(i=tam-1;i>=0;i--){
  20.            inverso[j]=vec[i];
  21.            cout<<inverso[j]<<" "<<endl;
  22.          }
  23.  
  24.  
  25. }


« Última modificación: 1 Diciembre 2014, 01:02 am por sabar » En línea

someRandomCode

Desconectado Desconectado

Mensajes: 250



Ver Perfil
Re: arreglo en c++
« Respuesta #1 en: 30 Noviembre 2014, 22:51 pm »

En ningun momento estas incrementando j.
Aparte de eso, no deberias poner using namespace std, sino hacer referencia a std::cout y std::cin.
Eso te va a servir cuando trabajes con multiples namespaces y diferentes elementos del mismo nombre en ellos.
Tampoco necesitas stdio.h ni string.h, solo iostream. Usando esos dos estarias mezclando C y C++
Hay mas cosas, pero fijate hasta donde te nombre que con eso lo vas a solucionar..


En línea

sabar

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: arreglo en c++
« Respuesta #2 en: 30 Noviembre 2014, 23:34 pm »

En ningun momento estas incrementando j.
Aparte de eso, no deberias poner using namespace std, sino hacer referencia a std::cout y std::cin.
Eso te va a servir cuando trabajes con multiples namespaces y diferentes elementos del mismo nombre en ellos.
Tampoco necesitas stdio.h ni string.h, solo iostream. Usando esos dos estarias mezclando C y C++
Hay mas cosas, pero fijate hasta donde te nombre que con eso lo vas a solucionar..
ya puse lo de incrementar j (j++), pero el programa deja de funcionar a los 5 segundos y creo que tiene que ver con el ultimo ciclo For pero no he visto el error
En línea

someRandomCode

Desconectado Desconectado

Mensajes: 250



Ver Perfil
Re: arreglo en c++
« Respuesta #3 en: 1 Diciembre 2014, 00:13 am »

No es eso a lo que me referia..
Código:
#include <iostream>
int main(int argc,char**argv)
{
std::cout << "Ingrese la cantidad de valores: ";
unsigned cantidad;
std::cin >> cantidad; // por simplicidad, no hago checkeo de si el valor es correcto (numerico y positivo)
int * arreglo = new int[cantidad];
for (unsigned i = 0; i<cantidad;i++) {
std::cout << "Numero(" << i << "):";
std::cin >> arreglo[i]; // tambien podria ser *(arreglo+i)
}
std::cout << "Los valores son los siguientes:" << std::endl;
for (unsigned i=0; i<cantidad;i++) {
std::cout << "[" << arreglo[i] << "]" << std::endl;
}
std::cout << "Invertido queda:" << std::endl;
for (unsigned i=cantidad-1;i>-1;i--) {
std::cout << "[" << arreglo[i] << "]" << std::endl;
}
delete[] arreglo;
}

Eso tendria mas color.. Solo lo muestra, modificalo un poquito si lo queres guardar..
EDIT: Si, ya se que estoy comparando un signed con un unsigned, pero me dio pereza jeje
« Última modificación: 1 Diciembre 2014, 00:24 am por someRandomCode » En línea

Ja_90

Desconectado Desconectado

Mensajes: 51



Ver Perfil
Re: arreglo en c++
« Respuesta #4 en: 1 Diciembre 2014, 05:53 am »

Código
  1. int tam ,num ,i ,vec[30];   // El arreglo inverso sobraria al igual que la variable num
  2.  
  3. // en la parte para imprimir el arreglo de manera inversa solo bastaria hacerlo asi
  4.  
  5. for(i=tam-1 ; i>=0 ; i--)
  6. {
  7.         cout << vec[i] << " ";
  8. }
  9.  

Lo unico es que tu programa no puede ingresar mas de 30 valores, ya lo has declarado... int vec[30].... Cambialo para que se del tamano que el usuario quiera....Si el usuario ingresa no mas 5 valores, los otros 25 valores del arreglo sobran y eso ocupa memoria.

Por ejemplo:
tamanio es 5 ==> vec[5] ==> ocupa 20 bytes
tamanio es 30 ==> vec[30] ==> ocupa 120 bytes

Nota: En verdad no se ha invertido el arreglo solo lo imprimi de atras hacia adelante.

Para invertirlo y que quede guardado, debes usar una variable auxiliar, y el for
Lo haces hasta la mitad de los elementos, si el # de elementos es
impar. En este caso de que sea par, el elemento del medio no se toma.

Código
  1. for(int i=0 ; i<TAM/2 ; i++)
  2.    {
  3.        auxi = vec[i];             // Variable auxiliar
  4.        vec[i] = vec[TAM-i-1];       // intercambio de los primeros por los ultimos
  5.        vec[TAM-i-1] = auxi;       // intercambio de los ultimos por los primeros
  6.    }
  7.  


EDITADO: Para que no tenga problemas con la reglas del subforo, por poner codigo compilable.


« Última modificación: 1 Diciembre 2014, 18:43 pm por Ja_90 » En línea

:D  ::::Ja_90::::   :D
zShackra

Desconectado Desconectado

Mensajes: 59


Ver Perfil WWW
Re: arreglo en c++
« Respuesta #5 en: 1 Diciembre 2014, 17:48 pm »

@Ja_90: No se resuelven los ejercicios de los usuarios, se ofrece orientación, no código compilable.
En línea

Ja_90

Desconectado Desconectado

Mensajes: 51



Ver Perfil
Re: arreglo en c++
« Respuesta #6 en: 1 Diciembre 2014, 18:45 pm »

zShackra Ya edite el post, creo que asi deberia haberlo hecho.  :silbar:
En línea

:D  ::::Ja_90::::   :D
zShackra

Desconectado Desconectado

Mensajes: 59


Ver Perfil WWW
Re: arreglo en c++
« Respuesta #7 en: 1 Diciembre 2014, 23:54 pm »

zShackra Ya edite el post, creo que asi deberia haberlo hecho.  :silbar:

Exactamente, gracias por cumplir las normas.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Arreglo en ComboBox
Programación Visual Basic
yonky_85 2 2,506 Último mensaje 28 Septiembre 2006, 18:40 pm
por CeLaYa
Arreglo de inmuebles
Java
Omar_2013 3 2,037 Último mensaje 18 Febrero 2015, 23:12 pm
por Usuario Invitado
arreglo con varias modas
Programación C/C++
bobitttyy 1 1,444 Último mensaje 16 Abril 2015, 17:35 pm
por rir3760
Arreglo de apuntadores vs. arreglo común en lenguaje C.
Programación C/C++
NOB2014 1 2,971 Último mensaje 1 Octubre 2016, 23:29 pm
por dato000
Confusión: arreglo de arreglo de strings (o con punteros)
Programación C/C++
Skali 3 2,147 Último mensaje 18 Mayo 2018, 19:22 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines