Первая проблема: вы объявляете Fib
как массив double
:
double Fib[50];
Но вы используете %d
для чтения значений, которые предназначены для чтения int
:
scanf("%d", &Fib[i]);
Использование неправильного спецификатора формата вызывает неопределенное поведение .Предположительно, вы хотите хранить целые числа, поэтому измените массив на int
:
int Fib[50];
Далее следует условие прорыва вашего массива:
if(i==-1)
i
- это индекс вашего массива, которыйколеблется от 0 до 49, так что это никогда не будет правдой.Вы хотите остановить, когда пользователь вводит -1, и это значение будет в Fib[i]
:
if(Fib[i]==-1)
Наконец, печать массива:
printf("numbers entered %d\n", Fib[i]);
Это не печатаетмассив.Он просто печатает элемент с последним индексом i
, и значение этого индекса всегда будет равно -1.Вам нужен отдельный цикл для печати значений:
int j;
printf("numbers entered:\n");
for (j=0; j<i; j++) {
printf("%d\n", Fib[j]);
}