Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

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

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 26.04.2012, 23:15   #1
monro86
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 31
Восклицание Массив -> Вектор

Доброго времени суток!
Ребят подскажите пожалуйста. Задача состоит вот в чем. Есть массив например из 10 чисел. Нужно найти сумму всем чисел, максимальное значение, и индекс максимального значения. Вот набросал код:
Код:
int main()
{
	const int arraySize = 10;
	int n[ arraySize ] = { 32, 27, 64, 95, 18, 14, 95, 70, 64, 90};
	int sum = 0;
	int max = 0;
	int max2;

	for ( int i = 0; i < arraySize; i++)
		sum += n[ i ];
	cout << "Sum is: " << sum << endl;

	for( int j = 0; j < arraySize; j++ )
		if ( max < n[ j ])
		{
			max = n[ j ];
			max2 = j;
		}
	cout << "Max elem of: " << max << "\nEnd index of elem is: " << max2 << endl;
		

	return 0;
}
Но проблема в том что, если есть повторяющиеся значение в массиве, то программа не учитывает повторение, вот на примере числа "95". Как можно сделать чтобы выводились все значение и индекс в массиве.
Или это можно сделать через вектор? Подскажите как?
Спасибо!
monro86 вне форума   Ответить с цитированием
Старый 27.04.2012, 01:02   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

Нужно найти сумму всем чисел

Код:
std::cout << "Сумма висех сисел, насяльника: " << std::accumulate(n, n + arraySize, 0) << std::endl;
максимальное значение, и индекс максимального значения

Код:
int* max = std::max_element(n, n + arraySize);
std::cout << "Максимальное снасение, насяльника: " << *max << std::endl;
std::cout << "Индекс максимального снасения, насяльника: " << std::distance(n, max) << std::endl;
Rififi вне форума   Ответить с цитированием
Старый 27.04.2012, 01:47   #3
monro86
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 31
По умолчанию

Премного благодарен. Код заметно меньше стал, но при повторе числа "95", а оно повторяется в индексе n[3] и n[6], а программа выводит только первый индекс. Это можно исправить?
monro86 вне форума   Ответить с цитированием
Старый 29.04.2012, 11:21   #4
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

monro86

при повторе числа "95", а оно повторяется в индексе n[3] и n[6], а программа выводит только первый индекс. Это можно исправить?

Можно. Но не с помощью алгоритма max_element
Rififi вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив ( построить вектор) Юля 19 Паскаль, Turbo Pascal, PascalABC.NET 6 08.04.2012 20:47
Задан вектор X[20]. Положительные числа переписать в массив Y, а отрицательные в массив W leha_demi Помощь студентам 2 24.09.2011 18:12
Вектор массив RUSSTUDENT Помощь студентам 1 12.10.2010 10:37
Одномерный массив и вещественный вектор Sychev11 Помощь студентам 1 29.04.2010 23:54


07:49.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.