Я создал массив целых чисел, пользователю предлагается выбрать 2 числа, я пытаюсь вернуть последовательность Фибоначчи из этих 2 чисел - PullRequest
0 голосов
/ 12 февраля 2019

Я создал массив целых чисел, пользователю предлагается выбрать 2 числа, я пытаюсь вернуть последовательность Фибоначчи из этих 2 чисел

#include <stdio.h>

int main ()
{
  int a, b;

  int nums[48];

  for (int i = 0; i < 47; i++)

    {
      printf ("Pick a number between 1 - 47\n");
      scanf ("%d", &a);

      printf ("Pick a number between 1 - 47\n");
      scanf ("%d", &b);

      if (a >= 47 || a <= 1)
    {
      printf ("Out of range pick another number between 1 - 47\n");
      scanf ("%d", &a);
    }

      if (b >= 47 || b <= 1)
    {
      printf ("Out of range pick another number between 1 - 47\n");
      scanf ("%d", &b);
    }

      nums[i] = a;
      nums[i + 1] = b;

      int c = a + b;

      printf ("The sequence is: %d\n", c);
    }
  return 0;
}

Вернуть до 47 чисел последовательности Фибоначчи

1 Ответ

0 голосов
/ 12 февраля 2019

Я изменил ваш код, предполагая, что вы ожидаете.Если вы хотите рекурсию версии этого кода, это также возможно.Просто прокомментируйте ниже.

int main ()
{
  int a, b;

  int nums[48];
    //input two numbers once
    printf ("Pick a number between 1 - 47\n");
    scanf ("%d", &a);

    printf ("Pick a number between 1 - 47\n");
    scanf ("%d", &b);

    if (a >= 47 || a <= 1)
    {
      printf ("Out of range pick another number between 1 - 47\n");
      scanf ("%d", &a);
    }

    if (b >= 47 || b <= 1)
    {
      printf ("Out of range pick another number between 1 - 47\n");
      scanf ("%d", &b);
    }

    nums[0] = a;
    nums[1] = b;

   //calculate the fibonnaci series
   for (int i = 2; i <= 47; i++)
   {
      nums[i] = nums[i-1] + nums[i-2];

   }
   //Then print the series
    print("Fibonnacci series for a = %d and b = %d is ", a, b);

    for(int i = 0; i <= 47; i++)
        print("%d ", nums[i]);
  return 0;
}
...