Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Aiyyaa
0 / 0 / 0
Регистрация: 22.02.2015
Сообщений: 8
1

Удалить из массива А(М) элементы, стоящие за первым максимальным элементом, количество цифр которых равно k

22.02.2015, 15:39. Просмотров 850. Ответов 8
Метки нет (Все метки)

Удалить из массива А(М) элементы, стоящие за первым максимальным элементом, количество цифр которых равно k.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2015, 15:39
Ответы с готовыми решениями:

Упорядочить по убыванию элементы массива, стоящие между первым максимальным и последним минимальным
Упорядочить по убыванию элементы массива, стоящие между первым максимальным и последним минимальным...

Найти количество элементов массива, содержащихся между первым и последним максимальным элементом
Здравствуйте! Помогите пожалуйста сделать задачу!!! Дан набор из целых чисел ( числа читаются...

Удалить из массива все элементы, расположенные перед максимальным элементом массива
Задан целочисленный массив размера N. Удалить из массива все элементы, расположенные перед...

Удалить первый положительный элемент массива; вставить новый элемент перед первым максимальным элементом
Дан целочисленный массив размера N. Как удалить первый положительный элемент ? Как вставить новый...

Дан массив int *a. Удалить из массива все элементы совпадающие с первым элементом
Дан массив int *a. Удалить из массива все элементы совпадающие с первым элементом, используя...

8
AlexKolc
191 / 161 / 116
Регистрация: 14.09.2013
Сообщений: 302
22.02.2015, 16:14 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
#include <cmath>
#include <vector>
#include <iostream>
#include <algorithm>
 
using namespace std;
 
int main( void )
{
    int m, k;
 
    cout << "m = ";
    cin >> m;
    vector <int> a(m);
    cout << "Введите массив: ";
    cin >> a[0];
    int imax = 0;
    for (int i = 1; i < m; i++)
    {
        cin >> a[i];
        if (a[i] > a[imax])
            imax = i;
    }
    cout << "Первый максимальный элемент = " << a[imax] << ". Он стоит в " << imax << " позиции." << endl;
    cout << "Введите кол-во цифр в удаляемых числах: ";
    cin >> k;
    for (int i = imax + 1; i < a.size(); i++)
        if ((int)log10(a[i]) == k - 1)
            a.erase(a.begin() + i--);
    cout << "Новый массив: ";
    for (int i = 0; i < a.size(); i++)
        cout << a[i] << ' ';
    return 0;
}
0
Aiyyaa
0 / 0 / 0
Регистрация: 22.02.2015
Сообщений: 8
22.02.2015, 17:24  [ТС] 3
не могли бы вы объяснить вот эту часть кода?
C++
1
2
3
for (int i = imax + 1; i < a.size(); i++)
        if ((int)log10(a[i]) == k - 1)
            a.erase(a.begin() + i--);
что значит
C++
1
a.size(
,
C++
1
 if ((int)log10(a[i]) == k - 1)
и
C++
1
a.erase(a.begin() + i--);
?
0
AlexKolc
191 / 161 / 116
Регистрация: 14.09.2013
Сообщений: 302
22.02.2015, 17:27 4
Aiyyaa, вы не знаете что такое вектор?
0
Aiyyaa
0 / 0 / 0
Регистрация: 22.02.2015
Сообщений: 8
22.02.2015, 17:29  [ТС] 5
нет, не знаю
0
AlexKolc
191 / 161 / 116
Регистрация: 14.09.2013
Сообщений: 302
22.02.2015, 17:35 6
Aiyyaa, вектор - массив, в который можно быстро добавлять и удалять элементы

Добавлено через 1 минуту
т.к. я удаляю элементы, значит длина массива будет изменяться, a.size() - длина вектора т.е. массива
Цитата Сообщение от Aiyyaa Посмотреть сообщение
что значит
C++
1
a.size()
0
Aiyyaa
0 / 0 / 0
Регистрация: 22.02.2015
Сообщений: 8
22.02.2015, 17:38  [ТС] 7
не могли бы вы написать решение без векторов, через обычный массив?
0
AlexKolc
191 / 161 / 116
Регистрация: 14.09.2013
Сообщений: 302
22.02.2015, 17:43 8
Лучший ответ Сообщение было отмечено Aiyyaa как решение

Решение

Цитата Сообщение от Aiyyaa Посмотреть сообщение
C++
1
if ((int)log10(a[i]) == k - 1)
log10(a[i]) - десятичный логарифм, так я определяю кол-во цифр в числе.

Добавлено через 15 секунд
могу

Добавлено через 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
#include <cmath>
#include <iostream>
 
using namespace std;
 
int main( void )
{
    int m, k;
 
    cout << "m = ";
    cin >> m;
    int a[m];
    cout << "Введите массив: ";
    cin >> a[0];
    int imax = 0;
    for (int i = 1; i < m; i++)
    {
        cin >> a[i];
        if (a[i] > a[imax])
            imax = i;
    }
    cout << "Первый максимальный элемент = " << a[imax] << ". Он стоит в " << imax << " позиции." << endl;
    cout << "Введите кол-во цифр в удаляемых числах: ";
    cin >> k;
    for (int i = imax + 1; i < m; i++)
        if ((int)log10(a[i]) == k - 1)
        {
            for (int j = i; j < m - 1; j++)
                a[j] = a[j + 1];
            i--;
            m--;
        }
    cout << "Новый массив: ";
    for (int i = 0; i < m; i++)
        cout << a[i] << ' ';
    return 0;
}
1
Aiyyaa
0 / 0 / 0
Регистрация: 22.02.2015
Сообщений: 8
23.02.2015, 19:02  [ТС] 9
спасибо)
0
23.02.2015, 19:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2015, 19:02

Заменить все элементы, стоящие перед первым отрицательным элементом, на сумму отрицательных элементов
Доброго времени суток, форумчане. Надысь задали мне контрольную работу по С++, но вот беда: язык я...

Массивы. Заменить все отрицательные элементы, стоящие на четных местах, максимальным его элементом, а на нечетных местах - минимальным
В заданном массиве В, который содержит 21 элемент, заменить все отрицательные элементы, стоящие на...

(CИ)Из массива целых чисел X(N) удалить элементы, сумма цифр которых меньше 4.
(СИ)Из массива целых чисел X(N) удалить элементы, сумма цифр которых меньше 4.


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

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

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