Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2011, 13:46   #1
Maksim.M
Новичок
Джуниор
 
Регистрация: 20.12.2011
Сообщений: 5
По умолчанию Массим Ц++

Добрый день,
Может кто-то помоч с заданием если не сложно, завтра последний день сдачи..
1. Найти Маскимальный элемент массива.
2. Найти произведение элементов массива, разположенных между первым и вторым нулевыми элементами.
3. Преоброзовать массив таким образом чтобы в первой его половине распологались элементы, стоявшие в нечётных позициях, а во второй половине - элементы, стоявшие в чётных позициях
Maksim.M вне форума Ответить с цитированием
Старый 20.12.2011, 13:57   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

http://programmersforum.ru/showthread.php?t=34061
_Bers вне форума Ответить с цитированием
Старый 20.12.2011, 14:05   #3
Maksim.M
Новичок
Джуниор
 
Регистрация: 20.12.2011
Сообщений: 5
По умолчанию

#include <time.h>
#include <iostream>
using namespace std;

int main()
{
srand(time(NULL));
const int n=10;
int arr[n],ma(0),max(0);
for (int i=0; i<n; i++)
{
arr[i]=rand()%15;
cout << arr[i] << " ";
if (arr[i]>ma)
ma=arr[i];
}
for (int i=0; i<n; i++)
if (arr[i]>max && arr[i] < ma)
max=arr[i];
cout << endl << max << endl;
system("pause");

}

Что здесь изменить, чтобы он искал максимальный элемент массива?
Maksim.M вне форума Ответить с цитированием
Старый 20.12.2011, 14:31   #4
Maksim.M
Новичок
Джуниор
 
Регистрация: 20.12.2011
Сообщений: 5
По умолчанию

#include <time.h>
#include <iostream>
using namespace std;

int main()
{
srand(time(NULL));
const int n=10;
int arr[n],max(0);
for (int i=0; i<n; i++)
{
arr[i]=rand()%15;
cout << arr[i] << " ";
}
for (int i=0; i<n; i++)
if (arr[i]>max)
max=arr[i];
cout << endl << max << endl;
system("pause");

}
Как здесь реализовать вопросо №2 Найти произведение элементов массива, разположенных между первым и вторым нулевыми элементами.

Последний раз редактировалось Maksim.M; 20.12.2011 в 14:40.
Maksim.M вне форума Ответить с цитированием
Старый 20.12.2011, 15:04   #5
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Maksim.M

1. Найти Маскимальный элемент массива.
2. Найти произведение элементов массива, разположенных между первым и вторым нулевыми элементами.
3. Преоброзовать массив таким образом чтобы в первой его половине распологались элементы, стоявшие в нечётных позициях, а во второй половине - элементы, стоявшие в чётных позициях


Вот программа на Ц++

Код:
#включить <ввструя>
#включить <локаль>

#включить <алгоритм>
#включить <нумерик>
#включить <функционал>

#включить <обходчик>

структура позиция
{
	позиция() : поз_(0) {}
	шаблон <имятипа Ы>
	логический оператор()(Ы)
	{ вернуть ++поз_ & 1; }
	размер_т поз_;
};

целый главный()
{
	установитьлокаль(ЛЦ_ВСЕ, "");

	целый мас[] = {1,2,0,4,5,0,7,8,9,10};
	нетрогать размер_т Н = размер(мас) / размер(мас[0]);

	типопр стд::выхструя_обходчик<целый> О;

	стд::цвых << "Массив: " << стд::конецстр;
	стд::копировать(мас, мас+N, О(стд::цвых, " "));
	стд::цвых << стд::конецстр;

	стд::цвых << "Максимальный элемент: " << *стд::макс_элемент(мас, мас+Н) << стд::конецстр;

	// Найти произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
	авто первый = стд::найти(мас, мас+Н, 0);
	авто второй = стд::найти(первый+1, мас+Н, 0);
	
	стд::цвых << "Произведение: " << стд::аккумулировать(первый+1, второй, 1, стд::умножение<целый>()) << стд::конецстр;

	// Преобразовать массив таким образом чтобы в первой его половине располагались элементы, стоявшие в нечётных позициях, а во второй половине - элементы, стоявшие в чётных позициях 
	стд::стабильно_расчленить(мас, мас+Н, позиция());

	стд::цвых << "Расчлененный массив: " << стд::конецстр;
	стд::копировать(мас, мас+Н, О(стд::цвых, " "));
	стд::цвых << стд::конецстр;

	вернуть 0;
}
Вывод программы:

Код:
Массив:
1 2 0 4 5 0 7 8 9 10
Максимальный элемент: 10
Произведение: 20
Расчлененный массив:
1 0 5 7 9 2 4 0 8 10
Rififi вне форума Ответить с цитированием
Старый 20.12.2011, 16:52   #6
Sna1L
Форумчанин
 
Аватар для Sna1L
 
Регистрация: 15.03.2011
Сообщений: 272
По умолчанию

Rififi, +100500

ТС, а чем Вы полгода занимались? Такие элементарные вещи студенты должны знать, даже не ходя на лекции/пары. Иначе зачем Вы вообще в программирование лезете?
Sna1L вне форума Ответить с цитированием
Старый 20.12.2011, 17:06   #7
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

OFF
Цитата:
Сообщение от Rififi Посмотреть сообщение
Код:
#включить <ввструя>
...
стд::цвых
.
eoln вне форума Ответить с цитированием
Старый 20.12.2011, 17:26   #8
Anarios
Пользователь
 
Регистрация: 20.12.2011
Сообщений: 11
По умолчанию

Rififi а не поделитесь дефайнами?
Anarios вне форума Ответить с цитированием
Старый 20.12.2011, 17:29   #9
Anarios
Пользователь
 
Регистрация: 20.12.2011
Сообщений: 11
По умолчанию

Цитата:
2. Найти произведение элементов массива, разположенных между первым и вторым нулевыми элементами.
Нулевой элемент может быть только один.
Anarios вне форума Ответить с цитированием
Старый 21.12.2011, 00:34   #10
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Anarios

Rififi а не поделитесь дефайнами?

я юзаю наколенный анализатор (см. вложение)
запускать так: Cpp <имя_файла>

список токенов на замену берется из файла tokens.txt
так что фантазия безгранична, например можно создать падонковский диалект C++ (((((Ж

tokens.txt
Код:
<algorithm> <алгоритм>
<iostream> <ввструя>
<fstream> <фструя>
<iterator> <обходчик>
<locale> <локаль>
using использовать
namespace пространствоимени
std стд
cout цвых
cin цвх
cerr цошб
endl конецстр
string стринг
vector вектор
ifstream выфструя
istream_iterator вхструя_обходчик
ostream_iterator выхструя_обходчик
ofstream выхфструя
if если
copy двигать
typedef типопр
typename имятипа
for для
back_inserter взад_вставлятель
int целый
main главный
const нетрогать
Вложения
Тип файла: zip Cpp.exe.zip (347.0 Кб, 8 просмотров)
Rififi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск