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

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

Войти
Регистрация
Восстановить пароль
 
Дмитрий123321
Сообщений: n/a
#1

Из удалить из массива отрицательные элементы, стоящие на четных местах и сжать его, заполнив нулями. - C++

14.01.2014, 15:03. Просмотров 583. Ответов 2
Метки нет (Все метки)

Из одномерного массива,состоящего из n целочисленных элементов, удалить отрицательные элементы, стоящие на четных местах. Сжать массив.Оставшиеся после удаления места заполнить нулями
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2014, 15:03     Из удалить из массива отрицательные элементы, стоящие на четных местах и сжать его, заполнив нулями.
Посмотрите здесь:
Массивы. Заменить все отрицательные элементы, стоящие на четных местах, максимальным его элементом, а на нечетных местах - минимальным C++
Сортировка массива: отдельно элементы, стоящие на четных местах и элементы, стоящие на нечетных местах C++
Все элементы исходного массива, стоящие на нечетных местах, возвести в квадрат, на четных местах – в куб C++
Упорядочить по возрастанию отдельно элементы, стоящие на четных местах, и элементы, стоящие на нечетных местах C++
C++ Вывести все четные элементы массива стоящие на не четных местах
Элементы, стоящие на четных местах массива, заменить введенным числом C++
Вывести элементы массива, стоящие на четных местах, затем — на нечетных C++
C++ Вывести на экран элементы массива, стоящие на четных местах и вычислить их произведение
C++ Вывести на экран элементы массива, стоящие на четных местах и вычислить их произведение
C++ Все элементы одномерного массива, стоящие на четных местах, заменить на противоположные
Вывести на экран элементы массива, стоящие на четных местах и вычислить их произведение C++
Вывести для массива на экран сначала элементы, стоящие на четных местах, потом — на нечетных C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MicM
821 / 488 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
14.01.2014, 16:01     Из удалить из массива отрицательные элементы, стоящие на четных местах и сжать его, заполнив нулями. #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 <ctime>
#include <cstdlib>
#include <iomanip>
 
const int n = 10;
 
int main()
{
    int mas[n];
    srand (time(0));
    for (int i=0; i<n; i++)
    {
        mas[i]=rand()%20-9;
        std::cout <<std::setw(3) <<mas[i];
    }
    std::cout <<std::endl;
    int k = 0;
    for (int i=0; i<n-k; i++)
    {
        if (mas[i]<0 && (i+k)%2==0)
        {
            if (i==n-k-1)
                mas[n-k-1] = 0;
            else
            {
                for (int j=i; j<n-k-1; j++)
                    mas[j] = mas[j+1];
                mas[n-k-1] = 0;
                ++k;
            }
        }
    }
    for (int i=0; i<n; i++)
        std::cout <<std::setw(3) <<mas[i];
    std::cout <<std::endl;
    return 0;
}
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
14.01.2014, 17:10     Из удалить из массива отрицательные элементы, стоящие на четных местах и сжать его, заполнив нулями. #3
Дмитрий123321,
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
#include "stdafx.h"
#include<iostream>
#include<vector>
#include<algorithm>
#include <iterator>
 
 
int _tmain(int argc, char* argv [])
{
    setlocale(LC_ALL, "Russian");
    int vectorSize;
    std::cout << "Size = ";
    std::cin >> vectorSize;
    std::vector<int> vec(vectorSize);
    
    for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); it++)
        std::cin>> *it;
    
    std::vector<int>::iterator new_end;
    int index(0);
    new_end = std::remove_if(std::begin(vec), std::end(vec), [&index](int number) {return ((index++ + 1) % 2 == 0) && number < 0; });
    for (std::vector<int>::iterator it = new_end; it != vec.end(); it++)
        *it = 0;
    std::cout << std::endl;
    for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); it++)
        std::cout << " " << *it;
 
    std::cin.get();
    std::cin.ignore();
    
    
    return 0;
Ответ Создать тему
Опции темы

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