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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


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

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Duda arreglos
« en: 28 Agosto 2010, 17:37 pm »

Hola estaba viendo un problema que vi sobre arreglos dice asi:  :laugh:

int x[10]; //Puede arreglarse las declaraciones para que funcione la asignacion x=y?
int y[10];
mi solución fue la de usar punteros y mi codigo es el siguiente, ahora esta bien esta forma que uso o existe otra forma  :P. Ojo lo que pide es arreglar declaraciones, pero igual lo hize de esta forma, no se si sea la correcta ;D
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.     int x[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};//para demostrar que esta comparando
  7.     int y[10];
  8.     int i = 0;
  9.     while(*(y + i) = *(x + i)) i++;
  10.  
  11.     for(int a= 0; a < 10; a++)
  12.          cout<<y[a]<<endl;
  13.     system("pause");
  14.     return 0;
  15. }


En línea

clodan

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: Duda arreglos
« Respuesta #1 en: 30 Agosto 2010, 15:39 pm »

osea... a y le queres asignar los valores de x??

emm dentro de string.h me parece que hay una funcion que es

strcat (var1,var2);

creo que esa te copiaba el valor de la var2 en la 1


En línea

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Duda arreglos
« Respuesta #2 en: 30 Agosto 2010, 17:11 pm »

Hola estaba viendo un problema que vi sobre arreglos dice asi:  :laugh:

int x[10]; //Puede arreglarse las declaraciones para que funcione la asignacion x=y?
int y[10];
mi solución fue la de usar punteros y mi codigo es el siguiente, ahora esta bien esta forma que uso o existe otra forma  :P. Ojo lo que pide es arreglar declaraciones, pero igual lo hize de esta forma, no se si sea la correcta ;D
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.     int x[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};//para demostrar que esta comparando
  7.     int y[10];
  8.     int i = 0;
  9.     while(*(y + i) = *(x + i)) i++;
  10.  
  11.     for(int a= 0; a < 10; a++)
  12.          cout<<y[a]<<endl;
  13.     system("pause");
  14.     return 0;
  15. }

el codigo esta incorrecto, si te fijas saldra solo cuando suceda un error debido a que lo que haces es asignar el valor de x+i a y+i, no existe una condicion verdadera donde termine el while.


Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.     int x[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};//para demostrar que esta comparando
  7.     int y[10];
  8.     for(int a= 0; a < 10; a++)
  9.          {y[a]=x[a];    
  10.            cout<<y[a]<<endl;
  11.                  }
  12.     cin.get();
  13. return 0;
  14. }
  15.  

EI: juntando mensajes.

osea... a y le queres asignar los valores de x??

emm dentro de string.h me parece que hay una funcion que es

strcat (var1,var2);

creo que esa te copiaba el valor de la var2 en la 1

strcat(); funciona con strings o cadena de caracteres, no con ints... ademas la funcion concatena el segundo parametro al primero... no asigna el valor del segundo al primero.
« Última modificación: 30 Agosto 2010, 17:15 pm por Eternal Idol » En línea

clodan

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: Duda arreglos
« Respuesta #3 en: 30 Agosto 2010, 17:25 pm »

osea... a y le queres asignar los valores de x??

emm dentro de string.h me parece que hay una funcion que es

strcat (var1,var2);

creo que esa te copiaba el valor de la var2 en la 1

strcat(); funciona con strings o cadena de caracteres, no con ints... ademas la funcion concatena el segundo parametro al primero... no asigna el valor del segundo al primero.

claaa... por eso, no entendi que es lo que queria hacer :P jajaja

salu2!
En línea

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Duda arreglos
« Respuesta #4 en: 31 Agosto 2010, 13:51 pm »

mas me parecio que no sabias para que funcionaba strcat()
En línea

clodan

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: Duda arreglos
« Respuesta #5 en: 31 Agosto 2010, 15:23 pm »

mas me parecio que no sabias para que funcionaba strcat()

 :¬¬ :¬¬ :¬¬

cual es la funcion que copiaba y pegaba arriba de una string??
strcpy ();???

strcat entonces es la que te copia al final el contenido de otra string,
strcpy es la qe te copia el contenido de una a otra no??
En línea

do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Duda arreglos
« Respuesta #6 en: 31 Agosto 2010, 18:20 pm »

¡Buenas!

El codigo
Código
  1. while(*(y + i) = *(x + i)) i++;
es correcto, ya que el ultimo valor de x es cero, y al asignarse dicho valor a la componente correspondiente de y, el valor almacenado en esa posicion sera utilizado para evaluar la condicion de continuidad del ciclo y sera falsa por ser cero.

El codigo inicial parece ser correcto, lo unico que sobra (y no digo que no sea correcto, sino que sobra) es la variable a. Puedes volver a utilizar la variable i para mostrar el contenido de y.

Otra cosa, intenta no usar la funcion system. Aunque este en la libreria estandar, se utiliza para pasar comandos al sistema operativo y por lo tanto tu codigo solo funcionara bajo un sistema operativo en particular. Utiliza getchar para que tu codigo sea portable.

¡Saludos!
« Última modificación: 31 Agosto 2010, 18:32 pm por do-while » En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Duda arreglos
« Respuesta #7 en: 31 Agosto 2010, 18:27 pm »

¡Buenas!

El codigo
Código
  1. while(*(y + i) = *(x + i)) i++;
es correcto, ya que el ultimo valor de x es cero, y al asignarse dicho valor a la componente correspondiente de y, el valor almacenado en esa posicion sera utilizado para evaluar la condicion de continuidad del ciclo y sera falsa por ser cero.

El codigo inicial parece ser correcto, lo unico que sobra (y no digo que no sea correcto, sino que sobra) es la variable a. Puedes volver a utilizar la variable i para mostrar el contenido de y.

Otra cosa, intenta no usar la funcion system. Aunque este en la libreria estandar, se utiliza para pasar comandos al sistema operativo y por lo tanto tu codigo solo funcionara bajo un sistema operativo en particular. Utiliza getchar para que tu codigo sea portable.

¡Saludos!

Personalmente cuando escribi el nuevo codigo... no tome en cuenta cuando pasara el valor 0.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda de Bash; Referencia indirecta a arreglos mediante funciones.
Scripting
astinx 0 2,229 Último mensaje 12 Noviembre 2011, 22:39 pm
por astinx
Duda sobre Arreglos(Arrays)
Java
Senior++ 2 1,260 Último mensaje 7 Diciembre 2012, 17:09 pm
por Senior++
duda con arreglos
Programación C/C++
sheva777 2 1,177 Último mensaje 29 Mayo 2013, 16:03 pm
por rir3760
duda con arreglos
Java
droidZ 2 1,112 Último mensaje 24 Septiembre 2013, 19:16 pm
por droidZ
duda con arreglos bidimensionales
Programación C/C++
nicolas04 1 1,037 Último mensaje 26 Junio 2014, 21:23 pm
por Flakito81
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines