Остановите цикл for, когда пользователь закончит ввод данных в c

Прежде всего, спасибо за помощь!

Я новичок в языке C (и программировании в целом), и я пытаюсь написать программу, в которой пользователь вводит точки данных. Точки данных затем сохраняются в массиве, где ими можно манипулировать.

Где я застрял: я хочу, чтобы пользователь мог вводить (почти) любое количество точек, а затем использовать своего рода ключевое слово для обозначения конца ввода данных. В этом случае пользователь наберет «готово».

Вот что у меня так далеко:

#include <stdio.h>
#include <string.h>

int main(void) {

printf("\n Welcome! \n\n Please enter each data point. Enter 'done' when finished.\n\n");

double data[1048];
int i, count;

for (i = 1; ;i++) {

    printf("Data[%i]: ", i);
    scanf("%lf", &data[i]);

    if (data[i] == 'done') {

        break;

    } else {

        count++;

    }

  } 

}

Я пытался вернуть 1; и «сломайся». Каждый раз, программа работает хорошо, пока не введено «ключевое слово», и в этот момент я получаю:

Data[8]: Data[9]: ... Data[1120]: Data[1Segmentation fault 11 

Единственный раз, когда он работает, это если он у меня прерывается, когда пользователь вводит конкретное число (например, -1 или 0). Но это не совсем подходит для пользователя, так как им, возможно, придется вводить эти цифры в качестве точек данных.

Извините за длинный пост, но я ценю помощь!

Ответы на вопрос(6)

Ваш ответ на вопрос