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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.09.2011, 18:16   #1
ZevS13
Пользователь
 
Регистрация: 28.02.2011
Сообщений: 11
По умолчанию Равны ли элементы массива(вектор)?

Здравствуйте уважаемые посетители!
Столкнулся с проблемой,нужно узнать сумму элементов массива до максимального элемента.Но не могу придумать что делать если максимального элемента нет,например когда все нули,нужно как то вывести сообщение о том что максимального элемента нет,не могу понять как.....помогите если не трудно

Код HTML:
#include "stdafx.h"
#include <iostream>
#include<algorithm>
#include <vector>
using namespace std;
int main()
{
	int n;
	setlocale(0,"rus");
	cout<<"Введите количество элементов массива";
	cin>>n;
	vector<int> mas(n);
	vector<int>::iterator it;
	cout<<"Введите элементы массива";
	for(int i=0;i<n;i++)
	{
		cout<<"Введите элемент №"<<i<<"=";
		cin>>mas[i];
	}
	int menu;
	cout<<"Хотите ли вы просмотреть массив?Если данажмите 1,если нет нажмите что-нибудь";
	cin>>menu;
	switch(menu)
		case 1:{
			for(int i=0;i<n;i++)
				cout<<"Элемент №"<<i<<"="<<mas[i]<<endl;
				}
	int poizv=1;
	for(int i=0;i<n;i++)
	{
		if(mas[i]<0)
		{
			poizv*=mas[i];
		}
	}
	cout<<"Произведение отрицательных элементов массив равно "<<poizv;
	int a = mas[0];
	int nomer=0;
	int sum=0;
	for (int i=0;i<n;i++) 
	{	
		if (mas[i]>a)
			{
				a = mas[i];
				nomer = i;

			}
	}
		
	
	
	for(int i=0;i<nomer;i++)
	{
		
		sum+=mas[i];
	}
	cout<<"Сумма элементов до максимального элемента равна "<<sum<<endl;
	reverse (mas.begin(), mas.end());
	for(it=mas.begin();it!=mas.end();it++)
		cout<<*it<<" ";
	system("pause");
	return 0;
}
ZevS13 вне форума Ответить с цитированием
Старый 05.09.2011, 18:30   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
если максимального элемента нет
Точнее, если максимальных элементов несколько (да хоть столько же, сколько всего элементов в массиве).
Просто вывести до первого из максимальных элементов (естественно, равных между собой). Ваш алгоритм именно это и делает, менять ничего не надо.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 05.09.2011, 19:05   #3
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

ZevS13, если интересно, эту задачу можно решить и используя STL, например так:
Код:
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
#include <functional>
#include <iterator>

using namespace std;


int main()
{
	vector<int> data;
	// Input (press <Ctrl+Z> to finish)
	copy(istream_iterator<int>(cin), istream_iterator<int>(), back_inserter(data));
	// Output
	cout << accumulate(data.begin(), max_element(data.begin(), data.end()), 0) << endl;

	return 0;
}
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить матрицу, элементы первой строки равны максимальному элементу; а второй строки - номеру (Делфи) Markss Помощь студентам 1 30.05.2011 23:15
Поменять местами диагональные элементы матрицы и вектор Элеонор Помощь студентам 1 29.05.2011 08:28
Элементы матрицы. Все ненулевые элементы массива D(k) расположить в начале массива E(k) и подсчитать их к Вася Маклауд Помощь студентам 0 03.04.2011 17:21
вывести вектор, элементы которого являются наибольшими числами каждой строки матрицы Artur1992 Помощь студентам 1 23.11.2010 11:35
1.Найти в матрице первую строку, все элементы которой отрицательны 2.отсортировать элементы массива по в w0lf16 Помощь студентам 2 22.11.2009 15:47