02:17

Здравствуйте, очень нужна помощь с двухмерными массивами, первый курс, не понимаю как их можно решить вовсе. 2 задачки.
читать дальше

@темы: Вопрос, C++

Комментарии
26.04.2012 в 02:20

проблемы с алгоритмом или синтаксисом?
26.04.2012 в 09:31

с алгоритмом скорее...
26.04.2012 в 11:16

WAAAAAAAAAGH!!!!!!1111ONEONE
первая задача: одномерный массив, очевидно, имеет размерность в число столбцов. по умолчанию все элементы - нули. дальше ищешь для каждого столбца четный элемент, если нашел, пишешь в массив и берешь следующий столбец.

вторая задача: диагональный элемент в столбце i, это который находится в ячейке i,i. Дальше, имхо, все очевидно.
26.04.2012 в 11:49

The last enemy that shall be destroyed is Death.
Первая задачка. Вторую лень колупать, там очень похоже



Единственное - исходного массива не увидишь. Если надо - добавь
27.04.2012 в 09:51

И тесно облакам.
Вторая задачка решается так (предполагаю, что первый индекс массива - номер строки, второй - номер столбца):

for(int i = 0; i < m; i++) {
for(int j = 0; j < m; j++) {
z[i][j] /= z[j][j];
}
}

27.04.2012 в 15:16

The last enemy that shall be destroyed is Death.
Ri, а разве для этой задачи есть разница, как нумеруются элементы? Все равно массив квадратный, поделить надо все.
27.04.2012 в 15:39

И тесно облакам.
Если нумеровать по-другому, то будет "z[i][j] /= z[i][i];", т.к. в задаче написано «стоящий в том же столбце».
27.04.2012 в 16:36

The last enemy that shall be destroyed is Death.
Ri, м, да. Не прав.
28.04.2012 в 19:31

большое спасибо)
30.04.2012 в 16:57

у меня не получается, чтобы первая задача выводила 0((( выводит вместо 0 огромные числа.
30.04.2012 в 17:13

The last enemy that shall be destroyed is Death.
Ololo2012, насколько огромные? мой код или измененный? Если изменен, то копируй сюда.
30.04.2012 в 17:25

И тесно облакам.
У Aguinore там вообще ерунда написана, выход за пределы массива. Забыли обработать случай, что элемента не нашлось. Этот кусок:

for (int i = 0; i < 6; i++) {
int j = 0;
while (array1 [i][j]%2 != 0)
j++;
array2 [i] = array1[i][j];
cout << array2 [i] << " ";
}


надо заменить на:

for (int i = 0; i < 6; i++) {
int j = 0;
for(int j = 0; j < 5; j++) {
if (array1[i][j] % 2 == 0) {
array2[i] = array1[i][j];
break;
}
}
cout << array2 [i] << " ";
}


,
30.04.2012 в 17:42

The last enemy that shall be destroyed is Death.
*Застыдился ерунды*
30.04.2012 в 18:43

я вставила этот кусок, у меня все выводит как надо, но после ввода массива вылазит окно с ошибкой: Debug Error!
вот такая прграмма получилась:



а по идее мне нужно выводить массив из 5 чисел. не по строкам, а по столбцам... вроде бы.
и получается, что нужно заменить данный кусок программы, как все-таки должно быть?

30.04.2012 в 18:51

И тесно облакам.
Если по столбцам, то так:

for (int j = 0; j < 5; i++) {
for(int i = 0; i < 6; j++) {
if (r[i][j] % 2 == 0) {
a[j] = r[i][j];
break;
}
}
cout << a [j] << " ";
}

30.04.2012 в 19:16

ооооо спасибо огромное! правда вы перепутали приращения, но теперь все нормально выводит)) вы очень помогли, спасибо!))