Задать вопрос
@Koala-Punch

Как решить задачу с массивом NxN?

pastebin.com/XvmDCiSE
Есть задачка значится: есть массив NxN надо найти первое вхождение в столбец нуля (это сделал) и переставить строки в соответствии с характеристикой - [сумма отрицательных нечетных] . Переставить в cоответствии с убыванием характеристики - тут увы сел, вроде понятно собраться массив из характеристик и дальше по нему перестроить,но увы в сравнении уперся в стену
  • Вопрос задан
  • 198 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
AtomKrieg
@AtomKrieg
Давай я поищу в Google за тебя
@res2001
Developer, ex-admin
0.Оформление кода жуткое, не читабельно совсем.
1.Выделяйте память сразу для всего массива размером b*c - не зачем дробить каждую строку. Обычно динамическое выделение памяти достаточно дорогостоящая процедура (сейчас то вам это не принципиально).
2.Забудьте про оператор goto. Единственное место, где его оправданно использовать это выход из глубоких вложенных if или циклов, но даже это можно решить другими способами, правда обычно более затратно, чем goto. В данном случае у вас он используется правильно, но ведь есть break для вашего случая, а это гораздо лучше, чем goto.
3.В общем и целом у вас почти все верно. Но:
Строка 80 явно лишняя:
int g[i];
Т.к. вы объявляете g[] выше. И кстати выше (в 71 строке) объявляете его не правильно, т.к. переменной e не присвоено никакое значение к моменту ее использования.
4.В последнем цикле вы видимо пытались сделать сортировку - не получилось. Попробуйте еще раз. И нужно сначала отсортировать, а потом вывести. По другому не получится.
Возможно вам придется сделать g[] не массивом intов, а массивом структур, где в каждой структуре будет содержаться "сумма четных отрицательных элементов каждой строки" и в другом элементе структуры - индекс строки. Сортировать нужно будет массив структур по сумме.
5.Про остальное писать не буду, т.к. на решение задачи не влияет.

Желаю удачи!
Ответ написан
15432
@15432
Системный программист ^_^
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы