0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 9
|
||||||
1 | ||||||
Косячное удаление элементов из массива11.02.2015, 07:03. Показов 1124. Ответов 16
Метки нет (Все метки)
Здравствуйте все, кто откликнулся на призыв о помощи. Вроде бы всё робит, но при удалении нечётных значений из массива ф-ей Parity_Array иногда удаляет не пойми как - остаются и чётные и нечётные, а иногда выдаёт какие-то запредельные шести-семизначные числа
Есть подозрения, что я, возможно, с типами данных накосячил что-то, только не могу понять где. Кто может объяснить в чём заключается ошибка? З.Ы.: Здоровая критика в адрес сего быдлокода тоже приветствуется
0
|
11.02.2015, 07:03 | |
Ответы с готовыми решениями:
16
Удаление четных элементов массива,больших среднего арифметического всех элементов массива Удаление из одного массива элементов второго массива и запись результата в третий Удаление элементов массива, которые равны сумме предыдущего и следующего элементов Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции |
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 9
|
|
11.02.2015, 07:47 [ТС] | 3 |
Что значит UB? Не могли бы вы поподробнее объяснить?
0
|
86 / 86 / 6
Регистрация: 14.01.2011
Сообщений: 265
|
|
11.02.2015, 07:51 | 4 |
Строчки 56 - 58. Похоже там дополнительные фигурные скобки нужны. А так у вас всегда выполняется присваивание!
0
|
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 9
|
|
11.02.2015, 08:08 [ТС] | 5 |
Поставил скобки - та же ерунда. Чепуху пишет, единицы оставляет, числа во втором массиве вообще меняются иногда, не знаю даже откуда он их берёт
0
|
86 / 86 / 6
Регистрация: 14.01.2011
Сообщений: 265
|
||||||
11.02.2015, 08:51 | 6 | |||||
1
|
Неэпический
|
||||||
11.02.2015, 08:58 | 7 | |||||
1
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,721
|
||||||
11.02.2015, 09:06 | 8 | |||||
Сообщение было отмечено KKris1988 как решение
Решение
Такое количество ошибок, что я затрудняюсь сказать, где их нет.
0
|
Модератор
8909 / 6678 / 918
Регистрация: 14.02.2011
Сообщений: 23,524
|
||||||
11.02.2015, 09:14 | 11 | |||||
тоже самое можно сделать так
так я и спрашиваю сработает или нет? инициализация глобальных переменных исполняется в стартовом коде, который исполняется до функции майн обычно это просто ассемблерная вставка поставляемая компилятором
0
|
Неэпический
|
|
11.02.2015, 09:18 | 12 |
Сработает.
Ну до функции main много чего выполняется. Всё будет нормально, не переживайте.
0
|
86 / 86 / 6
Регистрация: 14.01.2011
Сообщений: 265
|
|||||||||||
11.02.2015, 09:28 | 13 | ||||||||||
0
|
86 / 86 / 6
Регистрация: 14.01.2011
Сообщений: 265
|
|
11.02.2015, 09:42 | 15 |
0
|
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 9
|
|
11.02.2015, 10:58 [ТС] | 16 |
ZSS большое спасибо. Я ещё в самом начале долгого пути, поэтому очень многое для меня загадка, ответ на которую для меня вовсе не очевиден в отличие от тех, кто имеет большой опыт. Скопировал, сижу разбираюсь почему ваш вариант работает как надо, а мой через Ж
Вопрос к остальным участникам: 1. Я объявлял массивы в глобальной области, т.к. при объявлении в main, либо при объявлении в своих функциях, другие ф-и, использующие тот или иной массив, ссылались на то, что я тот или иной массив не объявлял, и вообще "not declared in this scope". Таки дела. Почему они такие подлецы? Я думаю что всегда писать всё в глобальную область - не айс и в будущем может быть сопряжено с некоторого рода проблемами 2. Касательно самих ф-ций. Вот допустим две ф-ии работают с одной и той же переменной. Имеет ли вообще смысл делать простейшую ф-ию int Func1(x) и прописывать потом return(x) чтобы int Func2(x) могла работать потом с изменённым значением переменной x? Или можно тупо куячить void Func1(x) и не прописывать возврата значения? Как это работает? В моём понимании, если ф-я берёт переменную и что-то с ней делает, то потом она должна эту переменную вернуть, чтобы другие могли попользоваться результатами её трудов. Если нет, то зачем нужен return()? Как правильно поступать? Буду очень рад толковому объяснению или ссылке на таковое (в литературу или ещё куда, не суть важно) Заранее спасибо
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,721
|
||||||
11.02.2015, 11:36 | 17 | |||||
Если результат работы функции - обработка массива переданного как параметр,
то возвращать ничего не надо, т.к. адрес массива передается через указатель. Соответственно, изменения происходят непосредственно в массиве. Таким массивом является массив par_array в функции
Таким новым результатом является par_arr_size - размер нового массива. Вот его мы и возвращаем из этой функции и передаем в функцию Print для вывода нового массива.
0
|
11.02.2015, 11:36 | |
11.02.2015, 11:36 | |
Помогаю со студенческими работами здесь
17
Удаление элементов массива, совпадающих с элементами другого массива Удаление элементов массива без буферного массива Удаление элементов массива! Удаление элементов массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |