Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ZevS13
1 / 1 / 0
Регистрация: 05.12.2010
Сообщений: 15
#1

Равны ли элементы массива(вектор)? - C++

05.09.2011, 18:17. Просмотров 641. Ответов 5
Метки нет (Все метки)

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2011, 18:17     Равны ли элементы массива(вектор)?
Посмотрите здесь:

Создать вектор, элементы которого равны произведению max и min в строке массива - C++
С массива ij]mn создать вектор из элементов, что равны произведению max элемента та min элемента в ряде.

Задана прямоугольная матрица А. Построить вектор В, элементы которого равны разностям наибольших и наименьших значений элементов строк - C++
Задана прямоугольная матрица А. Построить вектор В, элементы которого равны разностям наибольших и наименьших значений элементов строк. На...

Чему равны элементы пустого массива? - C++
Допустим я создал массив char a или int a, в общем не суть. И затем я с помощью цикла присвоил значение первым n его элементам. Но n&lt;100....

Найти все элементы массива, которые меньше или равны своему индексу - C++
Помогите пожалуйста с написание кода. Выдаёт ошибку, не могу понять где.:( Задание: Дано одномерный массив размерностью N. Найти все...

Двумерный массив. Определить количество строк массива, все элементы которых равны 0 - C++
Мисив имеет m строчок и n столбиков.Определить количество строчок масива,значение чисел,которые равны 0. С использованием проверки...

Вывести произвольно взятую единицу измерения массива , у которого все элементы индекса равны - C++
Выведите произвольно взятую единицу измерения массива , у которого все элементы индекса равны Помогите

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
05.09.2011, 18:25     Равны ли элементы массива(вектор)? #2
В код не вчитывался. Но наверное просто проверить, равна ли переменная nomer нулю.

Ну, это конечно не покажет, что все элементы одинаковые. Просто будет значить, что первый элемент и является максимальным, значит и суммы элементов до него тоже нет
o-user
245 / 202 / 7
Регистрация: 03.02.2009
Сообщений: 788
05.09.2011, 18:27     Равны ли элементы массива(вектор)? #3
Вообще-то, если все элементы нулевые - значит максимальный элемент РАВЕН НУЛЮ. И, следовательно, сумма тоже равна 0.
[Т.е. если все элементы одинаковые, то максимальное значение - равно элементу.]
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
05.09.2011, 18:32     Равны ли элементы массива(вектор)? #4
Цитата Сообщение от ZevS13 Посмотреть сообщение
Столкнулся с проблемой,нужно узнать сумму элементов массива до максимального элемента.Но не могу придумать что делать если максимального элемента нет,например когда все нули,нужно как то вывести сообщение о том что максимального элемента нет
Это подходит под случай, когда максимальных элементов несколько. Просто определитесь сумма до какого именно максимального элемента Вам нужна. Можно в принципе рассматривать только два случая: до первого и до последнего.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
05.09.2011, 18:36     Равны ли элементы массива(вектор)? #5
На-гора. Считать до последнего максимума через промежуточную сумму, сбрасывая ее в "основную".
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iterator>
#include <algorithm>
#include <cstdlib>
#include <ctime>
 
template <class Tp>
void printVector(const std::vector<Tp> &v) {
  std::copy(v.begin(), v.end(),
    std::ostream_iterator<int>(std::cout, " "));
  std::cout << std::endl;
}
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  size_t vector_size = 5 + rand() % 5;
 
  std::vector<int> vector;
 
  for (size_t i = 0; i < vector_size; ++i)
    vector.push_back(rand() % 2);
  
  int max_number = vector[0];
  int max_sum = vector[0];
  int local_sum = 0;
  for (int i = 1; i < vector_size; ++i) {
    local_sum += vector[i];
    if (vector[i] >= max_number) {
      max_sum += local_sum;
      local_sum = 0;
      max_number = vector[i];
    }
  }
  
  printVector(vector);
  std::cout << max_number << " -- " << max_sum << std::endl;
  return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2011, 18:44     Равны ли элементы массива(вектор)?
Еще ссылки по теме:

Построить одномерный массив, в котором элементы равны суммам элементов строк данного двумерного массива - C++
1. Дан двухмерный массив A. Написать программу построения одномерного массива B, элементы которого соответственно равны а) суммам...

Сравнить поэлементно два одномерных массива, и через if определить, равны эти элементы или нет - C++
Люди помогите пожалуйста Нужно сравнить по элементам два одномерных массива и через if определить равны эти элементы или нет. If...

Сформировать вектор, в который записать номера строк, в которых все элементы массива одинаковы. - C++
Дан двумерный массив A размера m*n. Сформировать вектор В, в который записать номера строк , в которых все элементы одинаковы. Если можно...

удалить из массива повторяющиеся элементы, оставив только их первые вхождения. класс-контейнер вектор - C++
Добрый день!!! Не могли бы помочь написать программу на С++ при помощи класса-контейнера вектора. вот код)) Заранее спасибо! #include...

Вычислить вектор D, компоненты которого равны сумме столбцов матрицы M - C++
Здравствуйте))) Помогите решить пожалуйста такую проблему. Есть программа, условие которой звучит так - &quot;Дана матрица M (4*6). Вычислить...

Вычислить вектор, компоненты которого равны сумме элементов строк заданной матрицы - C++
Дана матрица М(4,5). Вычислить вектор D, компоненты которого равны сумме элементов строк матрицы. Помогите решить. и в частности...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.09.2011, 18:44     Равны ли элементы массива(вектор)? #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <vector>
#include <algorithm>
 
template <class C> bool have_only_one_different_element( const std::vector< C >& vec )
{
    return std::min_element( vec.begin(), vec.end() ) == std::max_element( vec.begin(), vec.end() );
}
 
int main()
{
    std::vector<int> arr (5, 0);
    std::cout << std::boolalpha << have_only_one_different_element( arr ) << std::endl;
    
    arr[0] = 1;
    std::cout << std::boolalpha << have_only_one_different_element( arr ) << std::endl;
}
Yandex
Объявления
05.09.2011, 18:44     Равны ли элементы массива(вектор)?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru