我将已经完成的程序(使用4个数组)更改为一个新程序,该程序使用typedef创建一个包含这些数组的结构,所以我只使用一个而不是
为此,我使用了以下代码:
typedef struct structure
{
char names[13][9];
int scores[13][4];
float average[13];
char letter[13];
} stuff;
现在包含所有这些的一个数组是:
stuff everything[13];
然而,由于'姓名'然而我遇到了一些并发症。 '得分' '平均'和'信'不再存在,我必须改变它来通过typedef来代替。所以,举个例子,我有这个代码:
for(i=0; i<13; i++)
{
for(j=0; j<4; j++)
{
fscanf(score, "%d", &scores[i][j]);
}
}
fclose(score);
如何将信息存储在&#39;分数中?阵列还在吗?
此外,我将如何从该阵列中调出信息?
答案 0 :(得分:0)
你还有scores
,它就在结构内部。您可以使用普通数组和结构访问运算符访问它:
everything[x].scores[i][j] = 6;
当您宣布x
为0
12
时, everything
必须介于13
和stuff
之间(包括)。
答案 1 :(得分:0)
stuff everything[13];
声明一个包含类型stuff
的13个结构的数组。它相当于
struct structure everything[13];
typedef
,您无需再次撰写struct structure
。
为了访问上述结构数组中的信息,您可以对scores
执行类似以下操作(类似推理适用于其他字段:
for (int i = 0; i < 13; ++i )
{
for ( int j = 0; j < 13; ++j)
{
for (int k = 0; k < 4; ++k)
{
printf("%d ", everything[i].scores[j][k]);
}
}
}
当你想把东西放入这个结构数组时,你应该遵循与上面相同的逻辑。
答案 2 :(得分:0)
你想要的可能是这样的:
#define NUM_TEAMS 13
typedef struct
{
char names[9];
int scores[4];
float average;
char letter;
} team;
team everything[NUM_TEAMS];
int readInScores(team* allTeams)
{
int i = 0;
int j= 0;
FILE* score = fopen("whatever", "r");
if (score == 0)
return 0;
for(i=0; i<NUM_TEAMS; i++)
{
for(j=0; j<4; j++)
{
fscanf(score, "%d",&allTeams[i].scores[j]);
}
}
fclose(score);
return 1;
}