Вот код и интересно, можете ли вы помочь мне разобраться.Понимание двухмерных массивов
/* Two dimensional array */
#include <stdio.h>
void main() {
int i, j, sum[2], mean[2];
int mark[3][2] = { { 34, 56}, { 48, 65}, { 53, 59} };
for (j = 0; j < 2; j++)
sum[j] = 0;
for (i = 0; i < 3; i++) {
for (j = 0; j < 2; j++) {
sum[j] = sum[j] + mark[i][j];
}
}
for (j = 0; j < 2; j++)
mean[j] = sum[j]/3;
printf("Average mark in Mathematics is %d\n", mean[0]);
printf("Average mark in Chemistry is %d\n", mean[1]);
}
Мое понимание этого до сих пор ....
Определение типов данных I, J, сумма [2], средний [2] в виде целых чисел.
Инициализация массива .... mark - это тип данных int, массив должен иметь 3 строки и 2 столбца.
Первый для цикла, j, инициализированный в 0, условие: j должно быть меньше 2, обновить: добавить один на значение j. Сумма j = 0.
Также для 2-го цикла, i инициализируется в 0, условие: i должно быть меньше 3, обновить: добавить один на значение i.
Аналогично для следующей строки, которая использует цикл for и значение j.
Я немного смущен синтаксисом: sum [j] = sum [j] + mark [i] [j]; это означает, выведите сумму j и добавьте ее в метки, содержащиеся в массиве, отображаемом как [i] и [j].
После того, как это будет завершено, аналогичная j-петля, хотя и не уверена, как это взаимодействует с предыдущими циклами.
Среднее значение и значения, напечатанные на экране.
Когда я посмотрел на рабочем примере ... сумма [0] = 0 и сумма [1] = 0, я не понимаю, почему сумма [1] также 0.
Во-первых, я = 0 и у = 0,
сумма [0] = сумма [0] + знак [0,0]
, то J = 1
сумма [1] = сумма [1 ] + отметка [0,1]
затем
= 1, J = 0 сумма [0] = сумма [0] + знак [1,0]
затем
сумма [1] = сумма [1] + знак [1 , 1]
тогда я = 2, J = 0
сумма [0] = сумма [0] + знак [2,0]
затем
сумма [1] = сумма [1] + отметить [2,1]
Что меня немного сбивает, так это то, как петли взаимодействуют друг с другом и значения i и j повсюду.
Я знаю, что массив 2d будет в таблице (что я не могу отформатировать здесь).
Был бы признателен, если бы кто-нибудь мог пролить свет на это.
«Что меня немного сбивает, так это то, как петли взаимодействуют друг с другом и значения i и j повсюду». Используйте отладчик для выполнения кода. Или даже ручку и бумагу. – kaylum
Хорошим отладчиком будет 'gdb'. –
Это очень базовое знание программирования ... – norbertoonline