在我的程序中,我创建了一个struct
被调用的student
,它具有两个int
字段ID
和classNum
。如果我制作一个由20个学生组成的2D数组,如何使用循环遍历该数组并为每个学生分配其值?为此,这些值按数字顺序分别为1-20和30-50,所以我认为使用for循环应该很容易,但是我无法使其正常工作。我基本上需要它在完成时返回指向数组的指针。
typedef struct student
{
int ID;
int classNum;
};
//Creates a 4x5 array of students
struct student classroom [4][5];
//Creates the function that will return the array
student **makeClass()
{
int classNumba = 30;
int x = 0;
for(x = 1; x <= 20; x++)
{
classroom[x].ID = x;
classroom[x].classNum = classNumba;
classNumba++;
}
return classroom;
}
从您的问题中可以看出,您不知道如何初始化2-D结构数组。所以你应该参考这个。要填充2D数组,您始终需要2 for循环,因此请记住这一点。
int i=1, classNumba=30;
for(x=0; x<4; x++) {
for(y = 0; y <5; y++) {
classroom[x][y].ID = i;
classroom[x][y].classNum = classNumba;
classNumba++;
i++;
}
}
循环将执行((x = 4)*(y = 5)= 20)20次。20次i
将分配给教室[x] [y] .ID,并且每次将其初始值增加+1 i=1
。类似地,classNumba将分配给教室[x] [y] .classNum,并且每次将其初始值增加+1classNumba=30
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句