0 / 0 / 0
Регистрация: 05.01.2009
Сообщений: 11
|
|
1 | |
Работа с одномерным масивом05.01.2009, 20:41. Показов 1580. Ответов 10
Метки нет (Все метки)
Помогите пожалуйста:'(.....У меня такая задача по Visual C++.......есть масcив(вводится с клавиатуры) из 5 чисел....нужно найти в нем максимальный и минимальный элемент, порядковый номер этих элементов,потом удалить эти элементы с массива и вывести новый сформировавшийся("сжатый") массив без этих элементов.....помогите очень прошу!!!!!!!....Ниче не получается:'(
0
|
05.01.2009, 20:41 | |
Ответы с готовыми решениями:
10
задание с масивом Работа с одномерным массивом Работа с одномерным масивом Работа с одномерным масивом на C# |
1856 / 713 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
|
|
05.01.2009, 21:16 | 2 |
Покажи то, что уже написал, и тогда мы укажем тебе на ошибки, и если понадобится, то исправим.
0
|
0 / 0 / 0
Регистрация: 05.01.2009
Сообщений: 11
|
||||||
05.01.2009, 21:22 [ТС] | 3 | |||||
0
|
1856 / 713 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
|
||||||
05.01.2009, 21:48 | 4 | |||||
Основная ошибка была в том, что ты элементы массива нумеровал с 1 до 5, а надо от 0 до 4.
Вот я тебе исправил. Теперь работает как надо, но не совсем по заданию. Ты ведь в конце просто выводишь масив без мин и макс элементов, а надо сформировать новый. Исправь в коде место которое я указал коментарием на помещение в другой массив(например int result[3]).
1
|
0 / 0 / 0
Регистрация: 05.01.2009
Сообщений: 11
|
|
05.01.2009, 22:09 [ТС] | 5 |
Отличный вариант но, видишь ли в чем дело.......вобщем смотри эта задачка вершина айсберга!!!.....есть массив из 20 чисел...надо отобрать из него 3 самые минимальные и з самые максимальные (массив не упорядочин)....так вот что я надумал.......беру масив нахожу в нем мин. и макс. потом эти элементы удаляю с масива..остается 18...потом опять нахожу в оставшемся мин и макс...опять удаляю их..остается 16 и потом еще раз проделываю эту де процедуру......в результате получу 2 масива(один из мин. элементов, другой из макс.)...и потом их надо будет вывести......
0
|
1856 / 713 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
|
||||||
05.01.2009, 22:20 | 6 | |||||
А ты скопируй массив и упорядочи его. Например пузырьком. Очень просто.
a[17]a[18]a[19] - максимальные. А потом выводи те элементы из исходного, которые не равны a[0],a[1],a[2],a[17],a[18],a[19]. Решение мож и не самое красивое, но простое, и ты спокойно можешь его сделать сам.
1
|
0 / 0 / 0
Регистрация: 05.01.2009
Сообщений: 11
|
|
05.01.2009, 22:37 [ТС] | 7 |
Это т вариант просто идеален я его тож думал но есть одно но!......Мой препод сказал, что это слишком легко.........но это еще не все...я буду работать с потоками...разпаралеливать процессы...то есть.......у меня есть 3 процессора......я сделаю потоковые процедуры, в которых будут вызываться процедуры, что отвечают за поиск мин. и макс. и потом удаляют эти элементы с масива данного(наши 20 чисел).....потом в главной процедуре я буду вызывать потоки.....один за одним...и так получу желаемые 3 мин. и 3 макс. элемента.....тоесть важно работать именно с этим массивом.......а я хотел узнать нет ли какого нибуть алгоритма, что б удалять заданый элемент с массива и потом сдвигать("сжимать") массив??....может есть какая то функция специальная?(MSDN у меня нету к сожаленью).....
Добавлено через 6 минут 41 секунду Да еще хлтел узнать а можно ли в "If" задавать больше параметров???.....ну вот например if(i=0;i<5;i++) - это по стандарту а мне надо.....что б "i" была допусим от 0 до 2 и от 4 до 6.....ну что то типа if (i=0 && i<2;i=4&&i<6;i++) ну только прапвильно как написать это условие, не подскажешь???
0
|
1856 / 713 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
|
||||||
05.01.2009, 22:45 | 8 | |||||
Может ты имел ввиду for(int i=0;i<5;i++). Параметров там можно ставить скока угодно:
1
|
0 / 0 / 0
Регистрация: 05.01.2009
Сообщений: 11
|
|
05.01.2009, 22:56 [ТС] | 9 |
Наверно не совсем то ))))...я имеел виду в функции for(ты правильно подметил)....ставить приделы от допустим 0 до 3 и потом здесь же 5 до 7 и все это работая с одной переменной (в нашем случаи i )......напишу словами что б было понятнее for (i равно от 0 до 3 ; i равно от 5 до 7;i ++ )??????
0
|
1856 / 713 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
|
|
05.01.2009, 23:06 | 10 |
Не, так просто не выйдет. Да я и не понимаю зачем.
for - оператор А вот удалять элемент из массива нельзя. Если его выделить с помощью malloc, то его размер можно изменить с помощью realloc(самый простой вариант). Можно конечно создавать каждый раз новый массив и копировать в него результаты обработки предыдущего, но как потом выполнять синхронизацию между потоками я не знаю. Наверное надо использовать какой-нибудь контейнер из STL, например vector или list. Можно удалять все из любых позиций, но медленней, и я не знаю как это все будет работать на многопоточности. Еще непонятно: По идее потоки создаются для того, что бы работать одновременно, а не запускаться один после другого. Где же тут паралельное вычисление? Я очень плохо шарю в паралельных вычислениях
1
|
0 / 0 / 0
Регистрация: 05.01.2009
Сообщений: 11
|
||||||
06.01.2009, 10:34 [ТС] | 11 | |||||
Спасибо тебе за то что помог......я знаю ,что потоки работают одновременно..єто я просто не совсем правильно выразился....да препод задолбал...я такой алгоритм придумал классный с сортировкой (то что ты мне предлагал)на мьютексах реализованый а он пад****....забраковал сказал, мол это слишком легко...вот и приходится теперь мучатся (((((.....ну все равно спасибо большое за подсказки
Добавлено через 27 минут 25 секунд Спасибо тебе огромное за помощь!!!! Добавлено через 10 часов 51 минуту 55 секунд Помогите решить еще одну задачку!!!!!.......есть 5 чисел(неупорядоченный массив).....надо найти макс. и мин. элементы и заменить их нулями...потом снова пройтись по массиву и снова найти мин. и макс. элементы, учитывая что в нем уже есть нули(то есть предведущие макс. мин. элементы были заменены нулями)....такую процедуру проделать 3 раза...в результате должно быть 6 чисел (3 мин. и 3 макс.)......и масив с одним оставшимся числом.....помогите очень надо!!!!! Добавлено через 34 секунды вот код программы...не могу понять че не работает Добавлено через 39 секунд
0
|
06.01.2009, 10:34 | |
06.01.2009, 10:34 | |
Помогаю со студенческими работами здесь
11
Работа с масивом Работа с масивом элементов управления Две задачи : Работа с двухмерным масивом и Псевдографический редактор Получение данных из файла перевод в массив работа над масивом и запись массива в другой файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |