| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C++] Указатели, массивы |
| Автор: Tester123 16.5.2012, 20:09 |
| Вот такое задание нужно сделать на с++ в консольном приложении: В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный элемент массива; 2) сумму элементов массива, расположенных до последнего положительного элемента. Сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, Ь]. Освободившиеся в конце массива элементы заполнить нулями. 3) Создать вектор и поместить в него полученный в п.2 массив. Вывести содержимое вектора на экран. Для доступа к элементам массивов в работе пользоваться только указателями! Для заполнения массива использовать функцию int rand(), которая возвращает при каждом обращении к ней псевдослучайное целое число из диапазона 0...0x7fff. Сложно ли это сделать? Не могли бы помочь? |
| Автор: borisbn 16.5.2012, 20:40 |
| > 2) сумму элементов массива, расположенных до последнего положительного элемента. > псевдослучайное целое число из диапазона 0...0x7fff. 1) ты сам задание-то понял? 2) показывай, что у тебя получилось. Иначе -в ЦП |
| Автор: Tester123 16.5.2012, 22:40 |
| Честно? Я вообще не понимаю как это сделать. Думаю про псевдослучайное число можно опустить. |
| Автор: shara 17.5.2012, 09:01 |
нет +1 Tester123, смысл "доброму дяде" за тебя выполнять задание школьного курса по программированию? |
| Автор: susanin 17.5.2012, 12:04 |
ну а чего тут такого то? функция rand() выдает как раз псевдослучайные числа..а значит надо нарандомить числа от 0 до 32767 |
| Автор: bsa 17.5.2012, 12:37 |
| Для домашних заданий, курсовых, существует "Центр Помощи". Тема перенесена! |
| Автор: susanin 17.5.2012, 13:53 | ||||
ну я понимаю это следующим образом...есть массив 1 2 3 4 5 -6 -7 -9 5 13 28 - 163 - 13 смотрим в массив и ищем последнее положительно число..это 28..значит нужно посчитать сумму всех элементов, которые расположены в массиве до него..но тут правда вопрос действительно, почему генерировать от 0 тогда надо.. |
| Автор: borisbn 17.5.2012, 14:13 | ||
откуда в нём возьмутся отрицательные числа, если в задании сказано
Tester123, давай... включайся в дискуссию... или тебе это неинтересно ? |
| Автор: Dov 17.5.2012, 16:16 | ||
А если как-то так?
|
| Автор: borisbn 17.5.2012, 16:45 |
| susanin, Dov, думаете, я не знаю, как можно при помощи rand() сделать отрицательные числа ? я просто хотел, чтобы ТС поучаствовал в своей же теме |
| Автор: Tester123 17.5.2012, 18:36 |
| Я думаю про генерацию чисел от нуля можно опустить. Числа могут быть положительные и отрицательные. Но как всё это сделать, ума не приложу. |
| Автор: t_gran 18.5.2012, 08:10 | ||
Код на C, но я думаю вас устроит.
http://s1.ipicture.ru/ |
| Автор: Tester123 18.5.2012, 23:22 |
| Большое спасибо. Только по-моему тут считается минимальное, а не максимальное число, или я не прав? |
| Автор: t_gran 19.5.2012, 05:28 |
| Tester123, да, чуть ошибся. В функции GetMax меняем переменную min на max. В 38-ой строчке меняем знак "<" на ">" |
| Автор: Tester123 19.5.2012, 09:36 |
| Спасибо! |
| Автор: Tester123 22.5.2012, 22:35 |
| Возникла проблема, после сжатия нули должны быть в конце массива, а не на местах удалённых элементов. Вот мучаю код, это функцию Print нужно изменить? Может подскажите что добавить? |
| Автор: t_gran 23.5.2012, 02:44 |
| Tester123, вы внимательно читали код? Кончено, функция ZeroingElements только обнуляет эти элементы. Но дальше, вызывается функция Pack, которая и смещает все нули в конец массива. Вызовите функцию Print после функции Pack. |
| Автор: Tester123 23.5.2012, 17:46 |
| Я понял, благодарю! |