Остановите цикл 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). Но это не совсем подходит для пользователя, так как им, возможно, придется вводить эти цифры в качестве точек данных.
Извините за длинный пост, но я ценю помощь!