Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Сжать массив, удалив из него все элементы, модуль которых не превышает единицу - C++

29.11.2015, 09:33. Просмотров 842. Ответов 6
Метки нет (Все метки)

Задание:
Сжать массив, удалив из него все элементы, модуль которых не превышает единицу. Освободившиеся в конце массива элементы заполнить нулями.
есть только начало, массив вводиться с клавиатуры и все дальше ступор, помогите...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n;
    cout << "Vvedite n_" << endl;
    cin >> n;
    int *mas = new int[n];
    cout << "Vdedite massive_" << endl;
    for (int i = 0; i < n; i++)
    {
        cin >> mas[i];
    }
    //удаление элементов массива
 
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2015, 09:33
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сжать массив, удалив из него все элементы, модуль которых не превышает единицу (C++):

Сжать массив, удалив из него все элементы, модуль которых не превышает 1 - C++
В одномерном массиве, состоящем из n действительных элементов, сжать массив, удалив из него все элементы, модуль которых не превышает 1...

Сжать массив, удалив из него все элементы, модуль которых не превышает 1. - C++
В одномерном массиве, состоящем из 20 вещественных элементов, вычислить: 1) сумму элементов массива с нечетными номерами; 2) сумму...

Сжать массив, удалив из него все элементы. модуль которых не превышает, заданного числа. - C++
Дан одномерный массив. Сжать массив, удалив из него все элементы. модуль которых не превышает, заданно 20 числа а.

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

Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не превышает 1 - C++
Помогите пожалуйста написать программу: Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не...

Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не превышает 1 - C++
Помогите пожалуйста написать программу. Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не...

6
zss
Модератор
Эксперт С++
6867 / 6429 / 2150
Регистрация: 18.12.2011
Сообщений: 16,899
Завершенные тесты: 1
29.11.2015, 11:05 #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
#include <iostream>
#include <cmath>
using namespace std;
int  main()
{
    int n;
    cout << "Enter size:";
    cin >> n;
    double *mas = new double[n];
    for (int i = 0; i < n; i++)
    {
        cout << "Enter mas[" <<i<<"]:";
        cin >> mas[i];
    }
     int j=0;
    for (int i = 0; i < n; i++)
         if(abs(mas[i]>=1.0) )
           mas[j++]=mas[i];
    for (int i = j; i < n; i++)
       mas[i]=0;
    for (int i = 0; i < n; i++)
       cout<<mas[i]<<' ';
       
    //удаление массива
    delete[] mas;
    system("pause");
    return 0;
}
1
Dari8093
0 / 0 / 0
Регистрация: 24.10.2015
Сообщений: 16
29.11.2015, 11:25  [ТС] #3
Цитата Сообщение от zss Посмотреть сообщение
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
#include <iostream>
#include <cmath>
using namespace std;
int  main()
{
    int n;
    cout << "Enter size:";
    cin >> n;
    double *mas = new double[n];
    for (int i = 0; i < n; i++)
    {
        cout << "Enter mas[" <<i<<"]:";
        cin >> mas[i];
    }
     int j=0;
    for (int i = 0; i < n; i++)
         if(abs(mas[i]>=1.0) )
           mas[j++]=mas[i];
    for (int i = j; i < n; i++)
       mas[i]=0;
    for (int i = 0; i < n; i++)
       cout<<mas[i]<<' ';
       
    //удаление массива
    delete[] mas;
    system("pause");
    return 0;
}
тут просто выводится массив, который и ввели
0
Aymurat
110 / 104 / 34
Регистрация: 07.11.2014
Сообщений: 731
Завершенные тесты: 6
29.11.2015, 11:26 #4
Вы создали динамический массив, выделили для него память, а в конце надо просто удалить, как и показал zss, delete [] nameofmassiv;
0
zss
Модератор
Эксперт С++
6867 / 6429 / 2150
Регистрация: 18.12.2011
Сообщений: 16,899
Завершенные тесты: 1
29.11.2015, 11:27 #5
Цитата Сообщение от Dari8093 Посмотреть сообщение
просто выводится массив
А Вы водили числа меньшие единицы?
Например, 0.5
1
KinGelaim
7 / 7 / 2
Регистрация: 25.03.2015
Сообщений: 135
29.11.2015, 12:08 #6
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    //Создание массива
    int n;
    cout << "Введите количество элементов: " << endl;
    cin >> n;
    double *mas = new double[n];
    cout << "Введите массив: " << endl;
    for (int i = 0; i < n; i++)
    {
        cin >> mas[i];
    }
    //Удаление элементов массива, модуль которых не превышает единицу
    int i = -1;
    int n2 = n;
    while (i < n2)
    {
        i++;
        if (abs(mas[i]) <= 1)
        {
            for (int j = i; j < n2 - 1; j++)
                mas[j] = mas[j + 1];
            i--;
            n2--;
        }
    }
    //Заполняем нулями
    i = n;
    int sum = -1;
    while( sum < n-n2)
    {
        mas[i] = 0;
        i--;
        sum++;
    }
    //Вывод массива на консоль
    for (int i = 0; i < n; i++)
    {
        cout << mas[i] << " ";
    }
    cout << endl;
    system("pause");
    return 0;
}
1
Dari8093
0 / 0 / 0
Регистрация: 24.10.2015
Сообщений: 16
29.11.2015, 16:56  [ТС] #7
все заработало, спасибо за помощь))
0
29.11.2015, 16:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2015, 16:56
Привет! Вот еще темы с ответами:

Сжать массив, удалив из него все элементы, модуль которых находится в интервале a,b - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1. максимальный элемент массива; 2. сумму элементов массива,...

Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b] - C++
Сжать массив, удалив из него все элементы, модуль которых находится в интервале . Освободившиеся в конце массива элементы заполнить...

Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b] - C++
Всем здравствуйте, нужна ваша помощь , написать программу на DEV C++ Очень буду благодарен ! В одномерном массиве, состоящем из n...

Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b] - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1.) максимальный элемент массива; 2.) сумму элементов массива,...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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