我對2d數組的理解絕對是錯誤的。所以我會以另一種方式來解決這個問題。假設我有以下變量。
int student_id [10],course_id [5];
int student_course [10] [2];
只能有10名學生。 只能有5道菜。 一名學生只能參加2門課程。
/*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 [student_id的值] [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[i]);
/*prompt user for course id*/
printf("Enter Course ID: ");
scanf("%d", &course_id[j]);
for(k=0; k<2; k++){
student_course[i][j]=student_course[i][k];
}
}
}
如果這是錯誤的方式,什麼是得到我想要的結果,正確的方法是什麼?一個3維數組也許?我可能還沒有做好準備。
當'x = 10,y = 10'時做'z [x] [[y]'與z [4] [4]不正確。只有4x4元素。 – Rohan
我想你可能會對多維數組產生困惑。 z [i] [j]將只包含一個值,並通過使用z [i] [j] = 10(或x或y等)來設置它。 – Inisheer