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)
| | |-+  [C] Completar arreglo con numeros pares!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C] Completar arreglo con numeros pares!  (Leído 4,614 veces)
GGZ

Desconectado Desconectado

Mensajes: 144



Ver Perfil
[C] Completar arreglo con numeros pares!
« en: 3 Octubre 2015, 17:09 pm »

¿Cómo hago esto , por qué siempre se me sobrescribe una variable mas del arreglo?

Primero de todo, ¿tiene 48 elementos no?

Código
  1. /*
  2. Escribir un programa que complete un arreglo con los números pares que se encuentren entre 100 y 200 y los muestre en pantalla en orden descendente.
  3. */
  4.  
  5. #include <stdio.h>
  6.  
  7. int main (void){
  8. int a[48];
  9. int i,j;
  10.  
  11. i=j=0;
  12.  
  13. for (i=51; i<100; i++){
  14. a[j]=i*2;
  15. j++;
  16.  
  17. }
  18.  
  19. //Muestro
  20.  
  21. for (j=j-1; j>=0; j--)printf("%d\n",a[j]);
  22.  
  23.  
  24. return 0;
  25. }


« Última modificación: 3 Octubre 2015, 17:35 pm por nisteeklod » En línea

LET'S DO STUFF!!
ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: [Problema] Arreglos! >:((
« Respuesta #1 en: 3 Octubre 2015, 17:16 pm »

se te sobreescribe una variable más del arreglo. Explícate.


En línea

GGZ

Desconectado Desconectado

Mensajes: 144



Ver Perfil
Re: [C] Completar arreglo con numeros pares!
« Respuesta #2 en: 3 Octubre 2015, 17:19 pm »

Primero que todo ese programa es que escribí no funciona, es más si cambio algo por ejemplo a[j]=i; cambia tambien la variable j!!
¿Por quéé?

¿Cómo debería hacer ese programa?

Puedes programarlo y explicarme como lo has hecho, porque ya me he cansado de esperar.

« Última modificación: 3 Octubre 2015, 17:36 pm por nisteeklod » En línea

LET'S DO STUFF!!
0xFer


Desconectado Desconectado

Mensajes: 401



Ver Perfil
Re: [C] Completar arreglo con numeros pares!
« Respuesta #3 en: 3 Octubre 2015, 18:34 pm »

Lo complicas al momento de imprimir los datos, debería ser así:

Código
  1.  
  2. for( i = 0; i < 48; i++)
  3.    printf("%d\n",a[i]);
  4.  

Ex novo
« Última modificación: 3 Octubre 2015, 18:37 pm por 0xFer » En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
GGZ

Desconectado Desconectado

Mensajes: 144



Ver Perfil
Re: [C] Completar arreglo con numeros pares!
« Respuesta #4 en: 3 Octubre 2015, 18:49 pm »

Código
  1. /*
  2. Escribir un programa que complete un arreglo con los números pares que se encuentren entre 100 y 200 y los muestre en pantalla en orden descendente.
  3. */
  4.  
  5. #include <stdio.h>
  6.  
  7. int main (void){
  8. int a[48];
  9. int i,j;
  10.  
  11. j=0;
  12.  
  13. for (i=51; i<100; i++){
  14. a[j]=i*2;
  15. j++;
  16.  
  17. }
  18. printf ("j: ###%d\n",j);
  19.  
  20.  
  21.  
  22. return 0;
  23. }

El valor de j es 199

Código
  1. /*
  2. Escribir un programa que complete un arreglo con los números pares que se encuentren entre 100 y 200 y los muestre en pantalla en orden descendente.
  3. */
  4.  
  5. #include <stdio.h>
  6.  
  7. int main (void){
  8. int a[48];
  9. int i,j;
  10.  
  11. j=0;
  12.  
  13. for (i=51; i<100; i++){
  14. a[0]=i*2;
  15. j++;
  16.  
  17. }
  18. printf ("j: ###%d\n",j);
  19.  
  20.  
  21.  
  22. return 0;
  23. }

El valor de j es 49!



¿Qué carajo!?

El problema es como está definido el array, pero ¿Por qué? si son 48 elementos.
« Última modificación: 3 Octubre 2015, 18:54 pm por nisteeklod » En línea

LET'S DO STUFF!!
ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: [C] Completar arreglo con numeros pares!
« Respuesta #5 en: 3 Octubre 2015, 18:56 pm »

Código
  1. /*
  2. Escribir un programa que complete un arreglo con los números pares que se encuentren entre 100 y 200 y los muestre en pantalla en orden descendente.
  3. */
  4.  
  5. #include <stdio.h>
  6.  
  7. int main (void){
  8. int a[48];
  9. int i,j;
  10.  
  11. j=0;
  12.  
  13. for (i=51; i<100; i++){
  14. a[0]=i*2;
  15. j++;
  16.  
  17. }
  18. printf ("j: ###%d\n",j);
  19.  
  20.  
  21.  
  22. return 0;
  23. }

El valor de j es 49!



¿Qué carajo!?

Evidentemente. El for es lo que tiene, que incrementa las variables xD


Con respecto a la primera pregunta, ya no hace falta decir nada, dado esto último. Accedes a a[48], que no existe. Y como la variable j está en esa posición, sobreescribes la memoria. Simplemente no accedas a posiciones que salen del rango del array.
En línea

GGZ

Desconectado Desconectado

Mensajes: 144



Ver Perfil
Re: [C] Completar arreglo con numeros pares!
« Respuesta #6 en: 3 Octubre 2015, 18:59 pm »

Evidentemente. El for es lo que tiene, que incrementa las variables xD


Con respecto a la primera pregunta, ya no hace falta decir nada, dado esto último. Accedes a a[48], que no existe. Y como la variable j está en esa posición, sobreescribes la memoria. Simplemente no accedas a posiciones que salen del rango del array.

Jajajajaja, no estaba todo pegado todavía.

¿Pero no es que tiene 48 elementos, me equivoco?
« Última modificación: 3 Octubre 2015, 19:03 pm por nisteeklod » En línea

LET'S DO STUFF!!
ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: [C] Completar arreglo con numeros pares!
« Respuesta #7 en: 3 Octubre 2015, 19:02 pm »

Son 48 elementos. Es correcto. Pero empieza por 0.

Para que te hagas una idea, en un array de 2 elementos:
[ 0 ],[ 1 ]. Son 2 elementos. No está [ 2 ], ese sería un tercero.
« Última modificación: 3 Octubre 2015, 20:42 pm por ivancea96 » En línea

GGZ

Desconectado Desconectado

Mensajes: 144



Ver Perfil
Re: [C] Completar arreglo con numeros pares!
« Respuesta #8 en: 3 Octubre 2015, 19:22 pm »

Ya lo entendí

¡Cómo se me pudo pasar eso!

Damn, nigga!
« Última modificación: 3 Octubre 2015, 19:29 pm por nisteeklod » En línea

LET'S DO STUFF!!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines