Як генерувати ряд Фібоначчі в С

Я хочу генерувати ряд Фібоначчі в C. Мій код дає помилку компіляції. Ось код, насправді я новачок у програмуванні.

main()
{
   int n, first = 0, second = 1, next, c;

   printf("Enter the number of terms\n");
   scanf("%d",&n);

   printf("First %d terms of Fibonacci series are :-\n",n);

   for ( c = 0 ; c < n ; C++ )
   {
      if ( c <= 1 )
         next = c;
      else
      {
         next = first + second;
         first = second;
         second = next;
      }
      printf("%d\n",next);
   }
}
4
Скажіть, що ви маєте на увазі під "не працює". Чи відбувається збій програми? Якщо так, то де? Чи дає він неправильний результат?
додано Автор Eric J., джерело
@stefan: Я повинен сказати, що я не впевнений в C, але в C ++ це законно (хоча поганий стиль) не має return заяву в main() навіть хоча вона оголошена як int . Можливо, ці дві мови поділяють цю особливість?
додано Автор ereOn, джерело
@stefan: Я повинен сказати, що я не впевнений в C, але в C ++ це законно (хоча поганий стиль) не має return заяву в main() навіть хоча вона оголошена як int . Можливо, ці дві мови поділяють цю особливість?
додано Автор ereOn, джерело
Насправді це дає помилку компіляції.
додано Автор Sujeet Kumar, джерело
Спасибі всім, тепер його робота. Я використав int main() і оператор return. @Nobilis
додано Автор Sujeet Kumar, джерело
Спасибі всім, тепер його робота. Я використав int main() і оператор return. @Nobilis
додано Автор Sujeet Kumar, джерело
@NeeraJones Не забудьте поставити #include у верхній частині для printf на додаток до проблеми main . Також перед висновком main ви повинні повернути щось на зразок return 0;
додано Автор Nobilis, джерело
@NeeraJones Не забудьте поставити #include у верхній частині для printf на додаток до проблеми main . Також перед висновком main ви повинні повернути щось на зразок return 0;
додано Автор Nobilis, джерело
@stefan: Це зазвичай дає лише попередження, чи ні?
додано Автор legends2k, джерело
Це була помилка: "printf" не оголошено в цій області
додано Автор legends2k, джерело
@stefan: Звичайно, це не так, і я знав це, але коли ви запускаєте компілятор нормально, тобто gcc file.c або cl/EHsc file.c буде компілювати це просто добре, оскільки за промовчанням попередження не ввімкнено.
додано Автор legends2k, джерело
@stefan: Звичайно, це не так, і я знав це, але коли ви запускаєте компілятор нормально, тобто gcc file.c або cl/EHsc file.c буде компілювати це просто добре, оскільки за промовчанням попередження не ввімкнено.
додано Автор legends2k, джерело
... і помилки ...?
додано Автор Jeff Mercado, джерело
Найкращим способом швидко згенерувати чисельність блоків буде матриця. Ви можете навіть генерувати для більшого числа Modulo Прайм-число в O (log n).
додано Автор Shashank Jain, джерело
Найкращим способом швидко згенерувати чисельність блоків буде матриця. Ви можете навіть генерувати для більшого числа Modulo Прайм-число в O (log n).
додано Автор Shashank Jain, джерело
@ legends2k це не стандартна відповідність мати функцію повернення нічого взагалі, вона повинна викликати помилку.
додано Автор stefan, джерело
@ legends2k це не стандартна відповідність мати функцію повернення нічого взагалі, вона повинна викликати помилку.
додано Автор stefan, джерело
@ere Не про відсутня заява про повернення (це нормально в C ++ принаймні, не знаєте про C ), мова йде про відсутність повернення типу
додано Автор stefan, джерело
@ere Не про відсутня заява про повернення (це нормально в C ++ принаймні, не знаєте про C ), мова йде про відсутність повернення типу
додано Автор stefan, джерело
@NeeraJones, оскільки компілятор бажає int main() замість лише main() ?
додано Автор stefan, джерело

10 Відповіді

Це добре працює.

#include 
int main()
{
   int n, first = 0, second = 1, next, c;

   printf("Enter the number of terms\n");
   scanf("%d",&n);

   printf("First %d terms of Fibonacci series are :-\n",n);

   for ( c = 0 ; c < n ; C++ )
   {
      if ( c <= 1 )
         next = c;
      else
      {
         next = first + second;
         first = second;
         second = next;
      }
      printf("%d\n",next);
   }
return 0;
}
2
додано

Це добре працює.

#include 
int main()
{
   int n, first = 0, second = 1, next, c;

   printf("Enter the number of terms\n");
   scanf("%d",&n);

   printf("First %d terms of Fibonacci series are :-\n",n);

   for ( c = 0 ; c < n ; C++ )
   {
      if ( c <= 1 )
         next = c;
      else
      {
         next = first + second;
         first = second;
         second = next;
      }
      printf("%d\n",next);
   }
return 0;
}
2
додано

Цей код буде виводити перші 5 номерів fibonnacci

#include
void main()
{
    int first,second,next,i,n;
    first=0;
    second=1;
    n=5;
    printf("\n%d\n%d",first,second);       
    for(i=0;i
1
додано

Цей код буде виводити перші 5 номерів fibonnacci

#include
void main()
{
    int first,second,next,i,n;
    first=0;
    second=1;
    n=5;
    printf("\n%d\n%d",first,second);       
    for(i=0;i
1
додано

Це буде працювати для всіх значень n.

void fibSeries(int n) 
{ 
    int first = 0, next = 1, index= 0;
    if(n <= 0)
        return;
    if(n == 1)
        printf("%d ", first);
    else
    {
        printf("%d %d ", first, next);
        if(n > 2)
        {
            while(index++ < (n-2)) 
            {       
                int temp = first + next; 
                first = next; 
                next = temp; 
                printf("%d ", next);
            } 
        }
    }
}
0
додано

Це буде працювати для всіх значень n.

void fibSeries(int n) 
{ 
    int first = 0, next = 1, index= 0;
    if(n <= 0)
        return;
    if(n == 1)
        printf("%d ", first);
    else
    {
        printf("%d %d ", first, next);
        if(n > 2)
        {
            while(index++ < (n-2)) 
            {       
                int temp = first + next; 
                first = next; 
                next = temp; 
                printf("%d ", next);
            } 
        }
    }
}
0
додано
#include// header files
#include
void main()
{

 int f1=0,f2=1,f,n,i;
 printf("enter the no of terms");
 scanf("%d",&n);
  printf("the fibbonacci series:\n");
  printf("%d\n%d",f1,f2);
 for(i=2;i
0
додано
#include// header files
#include
void main()
{

 int f1=0,f2=1,f,n,i;
 printf("enter the no of terms");
 scanf("%d",&n);
  printf("the fibbonacci series:\n");
  printf("%d\n%d",f1,f2);
 for(i=2;i
0
додано
void main()
{
  int a,b,c;
  a = 0;
  b = 1 ;
  c = a + b;
  printf(" %d ",a);
  printf(" %d ",b);
  while ( c <= 100)
  {
    printf(" %d ",c);
    a = b;
    b = c;
    c = a + b;
  }
}
0
додано
void main()
{
  int a,b,c;
  a = 0;
  b = 1 ;
  c = a + b;
  printf(" %d ",a);
  printf(" %d ",b);
  while ( c <= 100)
  {
    printf(" %d ",c);
    a = b;
    b = c;
    c = a + b;
  }
}
0
додано