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

Массив: Оставить без изменения последовательность, если она упорядочена по неубыванию или по невозрастанию...

14.03.2019, 09:31. Просмотров 1017. Ответов 8
Метки нет (Все метки)


Дана последовательность из n членов. Оставить без изменения последовательность, если она упорядочена по неубыванию или по невозрастанию, в противном случае удалить из последовательности те члены, порядковые номера которых кратны четырем, сохранив прежним порядок оставленных членов.

 Комментарий модератора 
Не дублируйте темы - это нарушает правила форума.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2019, 09:31
Ответы с готовыми решениями:

Оставить без изменения последовательность, если она упорядочена
Даны целые числа а1...аn, где n - целое положительное число (n<=100). Оставить без изменения...

Оставить без изменения последовательность, если она упорядочена (по невозрастанию или неубыванию)
Оставить без изменения последовательность а1,...,а30, если она упорядочена по невозрастанию или...

Даны действительные числа . Оставить без изменения последовательность, если она упорядочена по неубыванию, в противном
Даны действительные числа . Оставить без изменения последовательность, если она упорядочена по не...

Оставить без изменения последовательность а1 - а30, если она упорядочена по возрастанию или по убыванию
Даны действительные числа а1.....а30. Оставить без изменения последовательность а1.....а30, если...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
8
║XLR8║
1103 / 850 / 256
Регистрация: 25.07.2009
Сообщений: 4,179
Записей в блоге: 5
14.03.2019, 11:24 2
Марс313, Соблюдайте правила:

4.1 Прежде чем задать вопрос, воспользуйтесь поиском - возможно, ответ на него уже был дан ранее.
4.7 Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.

- проверить упорядоченность
- удалить из последовательности
0
0 / 0 / 0
Регистрация: 23.12.2018
Сообщений: 45
15.03.2019, 12:06  [ТС] 3
Помогите пожалуйста с заданием
Дана последовательность из n членов. Оставить без изменения последовательность, если она упорядочена по не убыванию или по не возрастанию, в противном случае удалить из последовательности те члены, порядковые номера которых кратны четырем, сохранив прежним порядок оставленных членов.
3 дня сижу над кодом
C++ (Qt)
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
#include <iostream>
#include <string>
#include <list>
 
int main()
 
{
bool fl1=true, fl2=true;
int i,j;
for(i=1; i<n; i++)
{
    if(a[i]>a[i-1]) fl1=false;
    if(a[i]<a[i-1]) fl2=false;
}
if(!fl1 && !fl2)
{
    for(i=0; i<n; i++)
        if(a[i]%4==0)
        {           
            for(j=i; j<n-1; j++)
                a[i]=a[i+1];
            n--;
            i--;
        }       
}
}
0
5902 / 4011 / 2324
Регистрация: 18.12.2017
Сообщений: 12,562
16.03.2019, 04:22 4
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
#include <iostream>
using namespace std;
 
int main()
{
    int n, k=0, p=0, m=0;
    cout <<"n="; cin >>n;
 
    double*a = new double[n];
 
    cout << "Enter " << n << " elements:\n";
    for (int i = 0; i < n; i++)
      cin >> a[i];    
    
    for(int i=1; i<n; i++)
    {
    if(a[i]>=a[i-1]) k++;
    if(a[i]<=a[i-1]) p++;
    }
    
    if(k!=n-1 && p!=n-1)
    {  
    for (int i = 0; i < n; i++)
    if ((i+1)%4!=0) a[m++]=a[i];
    n=m;
    }    
    
    for (int i = 0; i < n; i++)
      cout << a[i]<<" ";
      cout << "\n";
 
    delete[]a;
system("pause");
return 0;
}
1
║XLR8║
1103 / 850 / 256
Регистрация: 25.07.2009
Сообщений: 4,179
Записей в блоге: 5
16.03.2019, 07:26 5
Марс313,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <functional>
 
int main() {
    std::vector<int> v, diff;
    std::copy(std::istream_iterator<int>(std::cin), std::istream_iterator<int>(), std::back_inserter(v));
    for (int i = 1; i < v.size(); ++i)
        diff.push_back(v[i] - v[i-1]);
    if (!std::all_of(diff.cbegin(), diff.cend(), std::bind(std::less_equal<int>(), std::placeholders::_1, 0)) &&
        !std::all_of(diff.cbegin(), diff.cend(), std::bind(std::greater_equal<int>(), std::placeholders::_1, 0)) )
        for (int i = 0; i < v.size(); i += 3)
            v.erase(v.begin() + i);
    std::copy(v.cbegin(), v.cend(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
}
0
2226 / 1729 / 865
Регистрация: 21.12.2010
Сообщений: 3,073
Записей в блоге: 11
16.03.2019, 13:03 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
#include <iostream>
#include <algorithm>
#include <future>
#include <algorithm>
#include <vector>
#include <functional>
#include <iterator>
 
 
int main()
{
    std::vector<int> vct{4,4,3,2,1,0,-1,-2,-3}; // послед-сть
    auto f1 = std::async(std::launch::async, std::is_sorted<decltype(vct)::const_iterator>, vct.begin(), vct.end()); // проверка на неубывание
    auto f2 = std::async(std::launch::async, std::is_sorted<decltype(vct)::const_iterator, std::greater<int>>, vct.begin(), vct.end(), std::greater<int>{}); // проверка на невозрастание
    auto it = vct.end();
    if (!(f1.get() || f2.get()))
    {
        it = std::stable_partition(vct.begin(), vct.end(), [&vct](auto const& val) {return (&val - &vct.front() + 1) % 4 != 0; }); // удаление членов с номерами кратными четырём
        vct.erase(it, vct.end());
    }
    std::copy(vct.begin(), vct.end(), std::ostream_iterator<decltype(vct)::value_type>{std::cout, " "}); // вывод
 
}
1
0 / 0 / 0
Регистрация: 23.12.2018
Сообщений: 45
16.03.2019, 16:37  [ТС] 7
Спасибо
0
║XLR8║
1103 / 850 / 256
Регистрация: 25.07.2009
Сообщений: 4,179
Записей в блоге: 5
16.03.2019, 18:11 8
Цитата Сообщение от igorrr37 Посмотреть сообщение
std::greater<int>>, vct.begin(), vct.end(), std::greater<int>
Здесь неправильно, нужно было
C++
1
decltype(vct)::value_type
вместо int писать

Более того, std::stable_partition не подходит так как он нарушает порядок последовательности а вы привязаны к нему. Для
std::vector<int> vct{4,2,3,2,1,0,-1,-2,-3}; получаем
4 2 3 1 0 -1 -3 а должно быть
2 3 2 0 -1 -2

Добавлено через 3 минуты
igorrr37, точнее использовать можно, но надо учитывать смещение координат

Добавлено через 7 минут
igorrr37, это называется заминусуйте меня семеро. Вы просто индексом ошиблись на еденицу...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <algorithm>
#include <future>
#include <algorithm>
#include <vector>
#include <functional>
#include <iterator> 
 
int main()
{
    std::vector<int> vct{4,2,3,2,1,0,-1,-2,-3};
    auto f1 = std::async(std::launch::async, std::is_sorted<decltype(vct)::const_iterator>, vct.begin(), vct.end());
    auto f2 = std::async(std::launch::async, std::is_sorted<decltype(vct)::const_iterator, 
        std::greater<decltype(vct)::value_type>>, vct.begin(), vct.end(), std::greater<decltype(vct)::value_type>{});
    auto it = vct.end();
    if (!(f1.get() || f2.get()))
    {
        it = std::stable_partition(vct.begin(), vct.end(), [&vct](auto const& val) { return (&val - &vct.front()) % 4 != 0; });
        vct.erase(it, vct.end());
    }
    std::copy(vct.begin(), vct.end(), std::ostream_iterator<decltype(vct)::value_type>{std::cout, " "}); // вывод
 
}
0
2226 / 1729 / 865
Регистрация: 21.12.2010
Сообщений: 3,073
Записей в блоге: 11
16.03.2019, 18:33 9
outoftime,
1. stable_partition не нарушает порядок следования
2. индексация в массиве начинается с нуля, а нумерация с 1
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2019, 18:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Оставить массив без изменения, если он упорядочен по невозрастанию или по неубыванию
Дан целочисленный массив Н(30). Оставить его без изменения, если он упорядочен по невозрастанию или...

Если последовательность упорядочена по неубыванию, то оставить ее без изменения, иначе получить последовательность an, an-1, ... , a1
Здравствуйте! Помогите пожалуйста переделать программу под язык Си с Паскаля! Дана...

Оставить без изменения последовательность, если она упорядочена по убыванию
Нужно написать программы(консольное приложение) в делфи самым простым способом без...

Оставить без изменений последовательность, если она упорядочена по не убыванию или по не возрастанию
Ребят,я начинающая программистка) помогите решить задачу на С Даны действительные числа a1, …,...


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

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

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