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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Recorriendo los elementos de una lista en un array con bucle for me da error
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Recorriendo los elementos de una lista en un array con bucle for me da error  (Leído 4,537 veces)
dairus20

Desconectado Desconectado

Mensajes: 110


Ver Perfil
Recorriendo los elementos de una lista en un array con bucle for me da error
« en: 5 Marzo 2011, 01:46 am »

Hola, buenas noches estoy apriendo el tema de los array en c pero tengo una duda con este trozo de codigo en concreto:

int suma = 0;
   int array[10];
   int i;
   for (i = 0; i <=10; i++)
   {
      suma += array;
   }
   printf("%d", array[0]);

El titulo se llama recorriendo los elementos de una tabla, pero el problema es que al compilar y ejecutar me da un numero extremadamente elevado miles o varios millones por ejemplo ahora mismo si lo ejecuto asi como esta me da esta salida:

574430056

Alguien me puede decir que estoy haciendo mal o que si es el codigo esta erroneo.

                                       GRACIAS DE ANTEMANO AMIGOS.


En línea

ace332

Desconectado Desconectado

Mensajes: 66


Ver Perfil
Re: Recorriendo los elementos de una lista en un array con bucle for me da error
« Respuesta #1 en: 5 Marzo 2011, 02:06 am »

hay dos errores:

1. No se le asignan valores a los elementos del array. Es por eso que al momento de efectuar la suma estos contienen valores no determinados (valores 'basura').

2. Los indices de los elementos del arreglo en este caso son: 0,1,2,...,9. En el condicional del for deberia estar i<10.


« Última modificación: 5 Marzo 2011, 02:09 am por BeetleJuice » En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Recorriendo los elementos de una lista en un array con bucle for me da error
« Respuesta #2 en: 5 Marzo 2011, 02:10 am »

Eso es porque tienes un array sin inicializar, tienes un array en donde no sabes con certeza el valor de cada uno de sus elementos podrías hacer lo siguiente:
Código
  1. int main(){
  2.  
  3.   int suma = 1;
  4.   int array[10];
  5.   for (int i = 0; i < 10; i++){
  6.      array[i] = i;
  7.   }
  8.   for (int j = 0; j < 10; j++){
  9.      array[j] += suma;
  10.      pintf("%d", array[j])
  11.   }
  12.   return 0;
  13. }

Espero entiendas el ejemplo leyendolo y analizandolo
« Última modificación: 5 Marzo 2011, 04:29 am por gankutsuo » En línea

Gunit

Desconectado Desconectado

Mensajes: 17



Ver Perfil
Re: Recorriendo los elementos de una lista en un array con bucle for me da error
« Respuesta #3 en: 5 Marzo 2011, 02:21 am »

Creo que lo que quieres hacer es sumar los valores del array en la variable suma no? No entendi bien :S

Antes, tambien tendrias que asignar valores al array...

Esto es lo que se me ocurre:

Lo probe compliando con GCC en linux..

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int suma = 0;
  6. int array[10];
  7.  
  8. array[0] = 1;
  9. array[1] = 1;
  10. array[2] = 1;
  11. array[3] = 1;
  12. array[4] = 1;
  13. array[5] = 1;
  14. array[6] = 1;
  15. array[7] = 1;
  16. array[8] = 1;
  17. array[9] = 1;
  18.  
  19. int i;
  20. for (i = 0; i<10; i++)
  21. {
  22. suma += array[i];
  23. }
  24. printf("%d", suma);
  25. }

No hace falta poner i<=10, i<10 sobra...
Debes indicar que valor del array usar, para eso se usa el indice array[indice]

« Última modificación: 5 Marzo 2011, 02:26 am por Gunit » En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Recorriendo los elementos de una lista en un array con bucle for me da error
« Respuesta #4 en: 5 Marzo 2011, 02:27 am »

Creo que lo que quieres hacer es sumar los valores del array en la variable suma no? No entendi bien :S

Antes, tambien tendrias que asignar valores al array...

Esto es lo que se me ocurre:

Lo probe compliando con GCC en linux..

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int suma = 0;
  6. int array[10];
  7.  
  8. array[0] = 1;
  9. array[1] = 1;
  10. array[2] = 1;
  11. array[3] = 1;
  12. array[4] = 1;
  13. array[5] = 1;
  14. array[6] = 1;
  15. array[7] = 1;
  16. array[8] = 1;
  17. array[9] = 1;
  18.  
  19. int i;
  20. for (i = 0; i<10; i++)
  21. {
  22. suma += array[i];
  23. }
  24. printf("%d", suma);
  25. }

En el bucle for, poniendo i<=10, el bucle continua hasta diez, o sea que del 0 al 10 contando el 0 son 11... debes dejarlo a i<10..
Debes indicar que valor del array usar, para eso se usa el indice array[indice]



No tienes que hacer toda esa asignación, si quieres inicializar cada elemento del array con 1 simplemente haces:
Código
  1. int array[10];
  2. int val = 1;
  3. for(int i = 0; i < 10; i++){
  4.    array[i] = val;
  5. }

y te evitas todas esas lineas
En línea

dairus20

Desconectado Desconectado

Mensajes: 110


Ver Perfil
Re: Recorriendo los elementos de una lista en un array con bucle for me da error
« Respuesta #5 en: 5 Marzo 2011, 13:29 pm »

Hola, gracias a todos por vuestras respuestas, gankutsuo: gracias por responderme, pero eso lo explicaba en el libro y luego venía lo del for para optimizar el código por explicaba que si tenias que inicializar 200 0 1000 era muy complicado de esa forma.

Porque utilizaba un for para recorrer todo el array con valores.

Gunit: Gracias por el código lo probaré en breve.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Saber la cantidad de elementos que tiene un array
Programación Visual Basic
USUARIO_DE_SOFTWARE_LIBRE 2 1,659 Último mensaje 3 Octubre 2006, 16:46 pm
por USUARIO_DE_SOFTWARE_LIBRE
Recorriendo el array $_POST y regresandolo a variables
PHP
Azielito 7 8,830 Último mensaje 8 Mayo 2007, 16:26 pm
por Rentero
Array y bucle for « 1 2 »
Java
Dem0ny 12 9,146 Último mensaje 3 Enero 2010, 23:51 pm
por panaka
Puntero a elementos de array
Programación C/C++
Riki_89D 2 2,560 Último mensaje 26 Mayo 2010, 21:32 pm
por 08l00D
[Ruby] Sumar elementos de un array
Scripting
ka0s 2 8,521 Último mensaje 25 Noviembre 2013, 20:32 pm
por ka0s
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines