errores de programa en C al compilar gcc

Iniciado por ferminta, 13 Enero 2012, 08:06 AM

0 Miembros y 1 Visitante están viendo este tema.

ferminta

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?

leogtz

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 ';'.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

ferminta

#2
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...

Alien-Z

Buenas:

Te comento los errores:

Código (cpp) [Seleccionar]
#include define N=10

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

Código (cpp) [Seleccionar]
#define N=10

El cuerpo del programa se compone de:

Código (cpp) [Seleccionar]
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:

Código (cpp) [Seleccionar]
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 (cpp) [Seleccionar]
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:

Código (cpp) [Seleccionar]
#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.

rir3760

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++.

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
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language