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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


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

Desconectado Desconectado

Mensajes: 99


Ver Perfil
Error sin sentido en tabla
« en: 6 Mayo 2012, 14:21 pm »

Buenas:

Estoy intentando guardar la sucesión de fibonacci en una tabla, algo muy sencillo, pero me da error. Al depurar encontré el fallo en la línea marcada:

Código
  1. int main ()
  2. {
  3.  
  4.    int tabla [80] = {1, 1};
  5.    int i;
  6.    int max;
  7.  
  8.    scanf ("%d", &max);
  9.  
  10.    for (i = 2; i < max; i++) //Genero la sucesion de fibonacci hasta el maximo
  11.    {
  12.        tabla [i] = (tabla[i-1]) + (tabla[i-2]); //Aqui me da el error
  13.    }
  14.  
  15.    for (i = 0; i < max; i++) //Imprimo la sucesion completa
  16.    {
  17.        printf ("%s", tabla[i]);
  18.    }
  19. }
  20.  

Estoy seguro de que el fallo está en que intento acceder a elementos de la tabla que no existen, pero no lo veo. En la primera iteración:

tabla [ i ] = tabla [2]  ||  tabla [i-1] = tabla [1]  ||  tabla [i-2] = tabla [ 0 ]

Todos esos elementos existen y en las siguientes iteraciones se mantiene.

¿Alguna sugerencia?, gracias.


« Última modificación: 6 Mayo 2012, 14:29 pm por eleon » En línea

xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: Error sin sentido en tabla
« Respuesta #1 en: 6 Mayo 2012, 15:01 pm »

cuando dices error no se si te refieres a error de compilacion o a que el programa no te funciona correctamente.

deberias tener en cuenta si el numero "max" introducido por el usuario es mayor o menor que el tamaño de la tabla. y en el "printf" del final, estas imprimiendo enteros, por lo tanto el especificador de formato deberia ser %d y no %s que es para una cadena. este de aqui esta probado y funciona correctamente:

Código
  1. #include <stdio.h>
  2.  
  3. #define TAM 10
  4.  
  5. int main ()
  6. {
  7.  
  8.    int tabla[TAM]= {1, 1};
  9.    int i, max;
  10.  
  11.    scanf ("%d", &max);
  12.  
  13.    for (i = 2; i < max && i < TAM; i++)
  14.        tabla[i] = tabla[i-1] + tabla[i-2];
  15.  
  16.    for (i = 0; i < max && i < TAM; i++)
  17.        printf ("%d ", tabla[i]);
  18.  
  19.    printf("\n");
  20.    return 0;
  21. }
  22.  

otra manera seria hacerlo con punteros, asi declararias el tamaño de la tabla una vez sabes cuantos numeros, "max", quiere ver el usuario.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main ()
  5. {
  6.  
  7.    int *tabla;
  8.    int i, max;
  9.  
  10.    scanf ("%d", &max);
  11.    tabla=(int*)malloc(max*sizeof(int));
  12.    *tabla=1;
  13.    *(tabla+1)=1;
  14.  
  15.    for (i = 2; i < max; i++)
  16.        *(tabla+i) = *(tabla+i-1) + *(tabla+i-2);
  17.  
  18.    for (i = 0; i < max; i++)
  19.        printf ("%d ", *(tabla+i));
  20.  
  21.    printf("\n");
  22.    free(tabla);
  23.    return 0;
  24. }

espero que te haya servido!


En línea

eleon

Desconectado Desconectado

Mensajes: 99


Ver Perfil
Re: Error sin sentido en tabla
« Respuesta #2 en: 6 Mayo 2012, 15:25 pm »

No puede ser!!!, el fallo estaba en el especificador del printf!!!.

Muchas gracias, era eso. Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error al tratar de crear una tabla en visual basic.net
.NET (C#, VB.NET, ASP)
kloud100 0 2,834 Último mensaje 12 Noviembre 2008, 20:20 pm
por kloud100
Duda sobre insersion a tabla html desde tabla sql
Bases de Datos
mokoMonster 2 4,129 Último mensaje 20 Febrero 2010, 01:20 am
por Shell Root
¿Error en la tabla de particiones?
GNU/Linux
Aetanes 0 3,283 Último mensaje 27 Abril 2011, 20:06 pm
por Aetanes
duda error creacion de tabla
Bases de Datos
dragonsito 2 4,206 Último mensaje 26 Octubre 2011, 05:56 am
por dragonsito
[Error] Tabla Hashing
Programación C/C++
Zodiak98 6 3,013 Último mensaje 17 Febrero 2017, 17:53 pm
por Zodiak98
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines