我有一个从用户读取数据的结构:
typedef struct
{
int seconds;
} Time;
typedef struct
{
Time time;
double distance;
} Training;
Training input;
scanf("%d %lf", input.time.seconds, input.distance);
这个scanf将循环播放,用户每次都可以输入不同的数据,我想将这些数据存储在一个数组中供以后使用。我认为我想要像arr [0] .seconds和arr [0] .distance。
这样的东西我尝试将输入的数据存储在一个数组中,但它根本不起作用......
Training data[10];
data[10].seconds = input.time.seconds;
data[10].distance = input.distance;
当程序关闭时数据会擦除,这就是我喜欢它的方式。所以我希望它存储在数组中,没有文件或数据库!
答案 0 :(得分:1)
data[10]
的类型为Training
,但没有seconds
。尝试:
Training data[10];
data[10].time.seconds = input.time.seconds;
data[10].distance = input.distance;
答案 1 :(得分:0)
两件事,训练集有一个'时间'字段来访问秒,如果你定义一个10元素的数组,你只能使用数据[0]到数据[9],数据[10]将是超过阵列结束。
Training data[10];
data[0].time.seconds = input.time.seconds;
data[0].distance = input.distance;
....
data[9].time.seconds = input.time.seconds;
data[9].distance = input.distance;