He hecho un programita en C que exactamente rellenara una tabla con los 10 primeros números d ela sucesión de Fibonacci.
main
int tabla[10]
int i
int aux
printf(%d\n, 0);
scanf(%d",&tabla[0])
printf(%d\n, 1);
scanf(%d",&tabla[1])
for (i=2;i<=10;i++)
tabla=tabla[i-1] + tabla[i-2]
scanf(%d,tabla)
end
Esto me debe dar una salida al complilar en C así:
0 1 2 3 5 8 13 21 44 65 es decir una tabla con los 10 primeros numeros d ela sucesión de FIBONACCI pero no me sale eso, sale 1 2 3 4 5 6 7 8 9 10....
¿Me pueden decir donde estan los errores?
Tienes muchos errores de sintáxis, debes leer algún manual urgentemente.
Tu código debe de ir dentro de la función main(), así:
int main() {
// CÓDIGO
}
Las sentencias en C terminan con ';'.
Empiezo yo por poner el código lo más estrictamente:
#include <stdio.h>
#include define N=10
main ()
int tabla[10];
int i;
int aux;
printf(%d\n, 0);
scanf(%d",&tabla[0]);
printf(%d\n, 1);
scanf(%d",&tabla[1]);
for (i=2;i<=10;i++)
tabla=tabla[i-1] + tabla[i-2];
scanf(%d,tabla);
end;
Esto me debe dar una salida al complilar en C así:
0 1 2 3 5 8 13 21 44 65 es decir una tabla con los 10 primeros numeros d ela sucesión de FIBONACCI pero no me sale eso, sale 1 2 3 4 5 6 7 8 9 10....
¿Me pueden decir donde estan los errores?
EI: juntando mensajes.
desde luego que :
main()
{ CODIGO REALIZADO
}
Gracias
De todas formas tampoco sale lo que debe salir, ahora simplemente no hay resultado...
Buenas:
Te comento los errores:
#include define N=10
Eso no está bien escrito, el "define" se usa sin "include":
#define N=10
El cuerpo del programa se compone de:
int main()
{
}
En tu algoritmo no has puesto las llaves.
En el bucle has puesto:
Citartabla=tabla[i-1] + tabla[i-2];
Siempre hay que declarar la posición en la tabla a la que haces referencia, deberías poner:
tabla[i]=tabla[i-1] + tabla[i-2];
Creo que el "end" final lo has puesto para finalizar el bucle tipo Pascal ¿no? lol; en C/C++ cuando el bucle tiene más de una instrucción se usa llaves para señalar el inicio y fin:
for (i=2; i<=10; i++)
{ //Inicio
//Instrucciones que componen el bucle
} //Fin
Y por último los "%d" van entre comillas. Aqui te dejo el algoritmo corregido:
#include <stdio.h>
#define N=10
int main ()
{
int tabla[10];
int i;
int aux;
printf("%d", 0);
scanf("%d",&tabla[0]);
printf("%d\n", 1);
scanf("%d",&tabla[1]);
for (i=2;i<=10;i++)
{
tabla[i]=tabla[i-1] + tabla[i-2];
scanf("%d",tabla);
}
}
Saludos.
Cita de: ferminta en 13 Enero 2012, 08:06 AMHe hecho un programita en C que exactamente rellenara una tabla con los 10 primeros números d ela sucesión de Fibonacci.
Abonando a lo ya comentado ...
Lo primero es conseguir (y devorar) un buen libro o manual sobre C, para ello empieza revisando el tema [Libros/Papers] C/C++ (http://foro.elhacker.net/programacion_cc/librospapers_cc-t296234.0.html).
Debes eliminar todas la llamadas a scanf ya que no tienen caso, en su lugar coloca un bucle para imprimir los números de la serie:
for (i = 0; i < 10; i++)
printf(" %d", tabla[i]);
putchar('\n');
También hay que cambiar la definición de la macro "N" (el carácter '=' esta de mas) o bien eliminarla ya que no se utiliza en el programa.
Un saludo