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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.95
sir_90115
8 / 8 / 1
Регистрация: 08.11.2009
Сообщений: 78
#1

Работа с вектором - C++

07.03.2011, 08:19. Просмотров 2694. Ответов 3
Метки нет (Все метки)

Задание:
Вектор В[1:20] сформировать из целых случайных чисел в диапазоне [-10 10].
а) найти минимальный элемент вектора.
б) найти произведение Р ненулевых элементов.
в) вставить за min элементом произведение ненулевых элементов.
г) найти номер максимального из 10 последних элементов вектора

Заранее благодарен...
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2011, 08:19     Работа с вектором
Посмотрите здесь:

Работа с вектором - C++
Помогите разобраться что к чему, примеров найти не смог: Спасибо.

Работа с вектором - C++
Здравствуйте! Помогите, пожалуйста разобраться..я только изучаю язык. Как в данной программе реализовать графический интерфейс? Чтобы...

Работа с вектором из класса - C++
Доброго времени суток ! Не до конца понимаю "Как это работает"© Есть вектор указателей, объявленный в main() ...

Работа со string, который под вектором - C++
Не могу никак понять как удалить символ из строчки, которая является элементом вектора. Честно гуглил и в русском, и в английском...

Не правильная работа memcpy с вектором - параметром функции - C++
Есть функция int InitX( CUSTOMVERTEX InVertexes, int VertexCount ) { //... void* pBV; memcpy(pBV,...

задание с вектором - C++
//напишите программу, где создается вектор из 10 элементов. При помощи итератора присвойте //каждому элементу значение, которое вдвое...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
07.03.2011, 10:35     Работа с вектором #2
Если именно по пунктам подряд. Т.е сначала в) - вставляем произведение, затем г) ищем уже в измененном векторе
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
#include <iostream>
#include <vector>
#include <windows.h>
 
using namespace std;
 
int main()
{
    int minimal = 20, pos, multi=1, maximal=-20;
    vector<int> V;
    vector<int>::iterator it;
    for (int i = 0; i < 20; ++i){
        V.push_back(rand()%21-10);
        if(V.at(i)<minimal){
            minimal = V.at(i);
            pos = i;}
        if(V.at(i)!=0)
            multi *=V.at(i);
    }
 
    cout << "minimal: " <<  minimal << " at " << pos << endl;
    it = V.begin();
    V.insert(it + pos,multi);
 
    for (it = V.begin(); it < V.end(); ++it){
        cout << *it << " ";
        if(*it > maximal && (it - V.begin()) > 10){
            maximal = *it;
            pos = it - V.begin();
        }
    }
    cout << endl;
    cout << "maximal: "<< maximal << " at " << pos << endl;
 
    system("pause");
 
    return 0;
}
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
07.03.2011, 11:27     Работа с вектором #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
И еще извращение на тему.
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
#include <cstdlib>
#include <ctime>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <numeric>
 
int RandomGenerator() {
    return rand() % 21 - 10;
}
 
void Print(int value) { printf("%3d ", value); }
 
int MultiplyNonZero(int a, int b) {
  return ((b == 0) ? a : a*b);
}
 
int main(int argc, char *argv[]) {
  std::vector<int> array(20);
  srand(time(NULL));
  std::generate(array.begin(), array.end(), RandomGenerator);
  std::for_each(array.begin(), array.end(), Print);
  printf("\n");
 
  int multiplication = std::accumulate(array.begin(), array.end(), 1,
                                       MultiplyNonZero);
  std::vector<int>::iterator min = std::min_element(array.begin(),
                                                    array.end());
  if (min != array.end() - 1)
    array.insert(min + 1, multiplication);
  else
    array.push_back(multiplication);
 
  std::for_each(array.begin(), array.end(), Print);
  printf("\n");
  printf("Max of last ten: %d\n", *std::max_element(array.end() - 10,
                                                    array.end()));
  return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2011, 11:37     Работа с вектором
Еще ссылки по теме:

Непонятная ошибка с вектором - C++
Пишу в VS ultimate 2012 Сам код: #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; int main() { ...

Странный глюк с вектором - C++
Я определил операции: Присвоения: bool s; std::vector&lt;int&gt; v; void operator=(int get_i){ s = get_i &lt; 0; // знак ...

Создание класса с вектором - C++
Создаю класс, который будет содержать вектора class Curve { protected: vector &lt;double&gt; XPoints; vector &lt;double&gt; YPoints; ...

Перестановка с вектором инверсий - C++
Здравствуйте,помогите перестроить программу с паскаля на с++ вот с этой темы http://www.cyberforum.ru/pascalabc-net/thread1840723.html Я...


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

Или воспользуйтесь поиском по форуму:
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
07.03.2011, 11:37     Работа с вектором #4
lemegeton, у меня смутное предчувствие, что sir_90115 даже разбирать его не будет
А вот я посмотрю... Спасибо )

Upd: Круто, все как в примерах
Yandex
Объявления
07.03.2011, 11:37     Работа с вектором
Ответ Создать тему
Опции темы

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