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

заменить максимумы нулями - C++

Восстановить пароль Регистрация
 
ver4a
0 / 0 / 0
Регистрация: 18.05.2012
Сообщений: 4
18.05.2012, 17:16     заменить максимумы нулями #1
Прошу помощи, по любой из двух задачек:

1Используя класс-контейнер вектор, в заданной целочисленной последовательности целых чисел заменить все максимальные элементы нулями.

2Используя класс-контейнер вектор, в заданной последовательности целых чисел, перед каждым z-ым элементом вставить 0.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
18.05.2012, 17:26     заменить максимумы нулями #2
Цитата Сообщение от ver4a Посмотреть сообщение
1Используя класс-контейнер вектор, в заданной целочисленной последовательности целых чисел заменить все максимальные элементы нулями.
Ну и как узнать когда остановится?
Смотрите вектор: 1 2 3 4 5 6 7 8 9
Заменяем max нулём: 1 2 3 4 5 6 7 8 0
Заменяем новый max нулём: 1 2 3 4 5 6 7 0 0
Когда останавливаться?

Добавлено через 5 минут
Цитата Сообщение от ver4a Посмотреть сообщение
2Используя класс-контейнер вектор, в заданной последовательности целых чисел, перед каждым z-ым элементом вставить 0.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
    enum {size=8};
    int z=3;//перед каким по счёту числом вставлять
    int ar[size]={1,2,3,4,5,6,7,8};
    vector<int> vec(ar, ar+size);
    int i=z-1;
    for(;i<vec.size();i+=z)
     vec.insert(vec.begin()+i,0),i++;
 
    for(int i=0;i<vec.size();i++)
     cout<<vec[i]<<'\t';
}
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
18.05.2012, 17:30     заменить максимумы нулями #3
Цитата Сообщение от Gepar Посмотреть сообщение
Ну и как узнать когда остановится?
Смотрите вектор: 1 2 3 4 5 6 7 8 9
Заменяем max нулём: 1 2 3 4 5 6 7 8 0
Заменяем новый max нулём: 1 2 3 4 5 6 7 0 0
Когда останавливаться?

Добавлено через 5 минут

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
    enum {size=8};
    int z=3;//перед каким по счёту числом вставлять
    int ar[size]={1,2,3,4,5,6,7,8};
    vector<int> vec(ar, ar+size);
    int i=z-1;
    for(;i<vec.size();i+=z)
     vec.insert(vec.begin()+i,0),i++;
 
    for(int i=0;i<vec.size();i++)
     cout<<vec[i]<<'\t';
}
Насчет первой задачи, думаю можно вставить проверку, если весь вектор занулен то идти на выход. думаю, это как вариант
ver4a
0 / 0 / 0
Регистрация: 18.05.2012
Сообщений: 4
18.05.2012, 17:48  [ТС]     заменить максимумы нулями #4
Цитата Сообщение от Gepar Посмотреть сообщение
Когда останавливаться?
Извините, я сама незнаю, если честно. Либо нужен всего один цикл, где заменяются нулями максимумы и всё, конец программы. Либо пока пока все элементы не будут нулями, но это мне кажется было бы абсурдно, значит всё-таки первый вариант, т.е. остановитсья после первого выполнения.
Yandex
Объявления
18.05.2012, 17:48     заменить максимумы нулями
Ответ Создать тему
Опции темы

Текущее время: 20:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru