Detenga un bucle for cuando el usuario termine de ingresar la entrada en c

Antes que nada, ¡gracias por la ayuda!

Soy nuevo en el lenguaje C (y en la programación en general) e intento escribir un programa en el que el usuario ingrese puntos de datos. Los puntos de datos se guardan en una matriz donde luego se pueden manipular.

Dónde estoy atascado: quiero que el usuario pueda ingresar (casi) cualquier número de puntos, luego usar una 'palabra clave' para indicar el final de la entrada de datos. En este caso, el usuario escribiría 'hecho'.

Esto es lo que tengo hasta ahora:

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

    }

  } 

}

Intenté 'return 1;' y 'descanso'. Cada vez, el programa funciona bien hasta que se ingresa la 'palabra clave', momento en el que obtengo:

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

El único momento en que funciona es si tengo un corte cuando el usuario ingresa un número particular (como -1 o 0). Pero eso no funciona para el usuario, ya que puede que tenga que ingresar esos números como puntos de datos.

Perdón por la larga publicación, ¡pero agradezco la ayuda!