Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
2 / 2 / 1
Регистрация: 05.12.2010
Сообщений: 15

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

05.09.2011, 18:17. Показов 1766. Ответов 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;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.09.2011, 18:17
Ответы с готовыми решениями:

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

Вектор: заменить все элементы, значения которых равны X, на Y
Здравствуйте, нужна помощь. Дана последовательность целых чисел: заменить все элементы, значения которых равны X, на Y. Выдает ошибку....

Построить вектор, элементы которого равны разнице элементов главной и побочной диагоналей матрицы
Построить вектор Н, элементы которого равны разнице элементов главной и побочной диагоналей матрицы Q(m,n)

5
Бродяга
 Аватар для dihlofos
315 / 269 / 56
Регистрация: 27.08.2010
Сообщений: 553
05.09.2011, 18:25
В код не вчитывался. Но наверное просто проверить, равна ли переменная nomer нулю.

Ну, это конечно не покажет, что все элементы одинаковые. Просто будет значить, что первый элемент и является максимальным, значит и суммы элементов до него тоже нет
0
247 / 205 / 26
Регистрация: 03.02.2009
Сообщений: 785
05.09.2011, 18:27
Вообще-то, если все элементы нулевые - значит максимальный элемент РАВЕН НУЛЮ. И, следовательно, сумма тоже равна 0.
[Т.е. если все элементы одинаковые, то максимальное значение - равно элементу.]
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
05.09.2011, 18:32
Цитата Сообщение от ZevS13 Посмотреть сообщение
Столкнулся с проблемой,нужно узнать сумму элементов массива до максимального элемента.Но не могу придумать что делать если максимального элемента нет,например когда все нули,нужно как то вывести сообщение о том что максимального элемента нет
Это подходит под случай, когда максимальных элементов несколько. Просто определитесь сумма до какого именно максимального элемента Вам нужна. Можно в принципе рассматривать только два случая: до первого и до последнего.
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
05.09.2011, 18:36
На-гора. Считать до последнего максимума через промежуточную сумму, сбрасывая ее в "основную".
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;
}
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.09.2011, 18:44
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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.09.2011, 18:44
Помогаю со студенческими работами здесь

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

Получить новый массив, элементы которого равны элементам массива А, деленным на наибольший элемент массива А
Ввести массив А из 15 элементов, вывести его до преобразования и после получить новый массив, элементы которого равны элементам массива А,...

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

Получить вектор М, элементы которого равны нечетным элементам массива А
Задан массив А(n), n&lt;12, целого типа. Получить вектор М, элементы которого равны нечетным элементам массива А. Найти среднее арифметическое...

Получить вектор М, элементы которого равны нечетным элементам массива А
Дан массив А(n), n=&lt;12, целого типа. Получить вектор М, элементы которого равны нечетным элементам массива А. Найти среднее арифметическое...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru