C、多维数组练习

标签 c arrays 2d

我对二维数组的理解是错误的。所以我会用另一种方式来解决这个问题。假设我有以下变量。

int student_id[10], course_id[5];

int student_course[10][2];

只能有 10 个学生。只能有 5 门类(class)。一个学生只能选修 2 门类(class)。

/*prompt user for student id*/

/*
say that the value for: 
student_id[0]=123
*/

/*prompt user for course id*/

/*
say that the value for:
course_id[0]=101
course_id[1]=102
course_id[2]=103
course_id[3]=104
course_id[4]=105
*/

我要打印出来的是
student_course[value_of_student_id][value_of_course_id]

所以我想到了这样做:

int student_id[10], course_id[5], student_course[10][2]

int i, j, k;

for(i=0; i<10;i++){
    for(j=0; j<5; j++){

        /*prompt user for student id*/
        printf("Enter User ID: ");
        scanf("%d", &student_id);

        /*prompt user for course id*/
        printf("Enter Course ID: ");
        scanf("%d", &course_id);

        for(k=0; k<2; k++){
            student_course[i][j]=student_course[i][k];
        }

    }
}

如果这是错误的方法,那么获得我想要的结果的正确方法是什么?也许是一个 3 维数组?我可能还没有准备好。

最佳答案

你也可以这样做

typedef struct
{
  int student_id;
  int course_id[2];
} Student

Student Students[10];

然后用 student_id 和他参加的类(class)初始化数组

关于C、多维数组练习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22033207/

相关文章:

c - Union 在 C 中不打印正确的值

c - 将数千个数据结构保存在一个文件中并进行特定查找是否实用?

c - 如何从数组中删除一个元素并打印其余元素?

javascript - 有没有更好的方法来设置和从 LocalStorage 获取?

javascript - LoDash 可以搜索动态对象数组,但不能搜索类型化对象数组

android - 将大图设置为 SurfaceView 的背景,使其适合 Android 中的显示高度

c - 使用 MPI,当存在连续数组时,用户定义的数据类型是否无用?

javascript - 为什么 Array.prototype.sort() 在 Chrome 开发工具中不起作用?

c# - 在 Unity 2D 中翻转 2D Sprite 动画

javascript - 使用 2D 渲染上下文的 HTML5 Canvas 转换问题