Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ferminta en 13 Enero 2012, 08:06 am



Título: errores de programa en C al compilar gcc
Publicado por: ferminta en 13 Enero 2012, 08:06 am
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?


Título: Re: errores de programa en C al compilar gcc
Publicado por: leogtz en 13 Enero 2012, 08:28 am
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í:

Código:
int main() {
// CÓDIGO
}

Las sentencias en C terminan con ';'.


Título: Re: errores de programa en C al compilar gcc
Publicado por: ferminta en 13 Enero 2012, 09:43 am
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...


Título: Re: errores de programa en C al compilar gcc
Publicado por: Alien-Z en 13 Enero 2012, 11:52 am
Buenas:

Te comento los errores:

Código
  1. #include define N=10

Eso no está bien escrito, el "define" se usa sin "include":

Código
  1. #define N=10

El cuerpo del programa se compone de:

Código
  1. int main()
  2. {
  3. }

En tu algoritmo no has puesto las llaves.

En el bucle has puesto:
Citar
tabla=tabla[i-1] + tabla[i-2];

Siempre hay que declarar la posición en la tabla a la que haces referencia, deberías poner:

Código
  1. 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:

Código
  1. for (i=2; i<=10; i++)
  2. {       //Inicio
  3.        //Instrucciones que componen el bucle
  4. }     //Fin

Y por último los "%d" van entre comillas. Aqui te dejo el algoritmo corregido:

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

Saludos.


Título: Re: errores de programa en C al compilar gcc
Publicado por: rir3760 en 13 Enero 2012, 18:40 pm
He 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:
Código
  1. for (i = 0; i < 10; i++)
  2.   printf(" %d", tabla[i]);
  3. 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