Pare um loop for quando o usuário terminar de inserir a entrada em c

Antes de tudo, obrigado pela assistência!

Eu sou novo na linguagem C (e programação em geral) e estou tentando escrever um programa em que o usuário insira pontos de dados. Os pontos de dados são salvos em uma matriz onde podem ser manipulados.

Onde estou preso: quero que o usuário possa inserir (quase) qualquer número de pontos e, em seguida, use uma espécie de 'palavra-chave' para sinalizar o final da entrada de dados. Nesse caso, o usuário digitaria 'concluído'.

Aqui está o que eu tenho até agora:

#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++;

    }

  } 

}

Eu tentei 'retornar 1;' e 'quebrar;'. Cada vez, o programa funciona bem até que a 'palavra-chave' seja inserida; nesse momento, recebo:

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

A única vez que funciona é se eu o interrompo quando o usuário digita um número específico (como -1 ou 0). Mas isso não funciona muito bem para o usuário, pois ele pode precisar inserir esses números como pontos de dados.

Desculpe pelo longo post, mas agradeço a ajuda!

questionAnswers(6)

yourAnswerToTheQuestion