如何在C中填充2D结构数组?

乔什·伯克曼(Josh Burkman)

在我的程序中,我创建了一个struct被调用的student,它具有两个int字段IDclassNum如果我制作一个由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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章