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

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

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

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

01.07.2014, 19:51. Просмотров 463. Ответов 5
Метки нет (Все метки)

в одномерном массиве удалить те элементы, которые расположены в заданном с клавиатуры диапозоне С++

Добавлено через 52 минуты
очень нужно, помогите...

Добавлено через 1 час 7 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int main ()
{
 int sample[10];
 int t;
 int n;
 setlocale(LC_ALL,"RUS");
 for(t=0;t<10; ++t) sample[t] = t;
 for(t=0; t<10; ++t)
  cout << " ÝëåìåГ*ГІГ» Г¬Г*Г±Г±ГЁГўГ*[" << t << "]: " << sample[t] << "\n";
   cout << "ГіГЄГ*æèòå Г*îìåð ýëåìåГ*ГІГ*, êîòîðûé Г*ГіГ¦Г*Г® ГіГ¤Г*ëèòü: ";
   cin >> n;
 
   }
как сделать, чтобы хотябы 1 элемент удалить можно было?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2014, 19:51
Я подобрал для вас темы с готовыми решениями и ответами на вопрос В одномерном массиве удалить те элементы, которые расположены в заданном с клавиатуры диапазоне (C++):

Найти элементы, которые встречаються в массиве не менее двух раз и лежащие в заданном диапазоне - C++
Дано натуральное число N и одномерный массив A1, A2, …, AN натуральных чисел. Найти элементы, которые встречаються в массиве не менее двух...

Поиск произведения элементов в заданном диапазоне в одномерном массиве - C++
Завтра экзамен!Нужен код в С++!Буду очень благодарна! Разработать приложение поиска произведения элементов в диапазоне в одно-мерном...

В заданном массиве чисел в диапазоне [-99; 99] замените элементы с к1-го по к2-й на противоположные по знаку - C++
В заданном массиве чисел в диапазоне замените элементы с к1-го по к2-й на противоположные по знаку. Решите пожалуйста задачу,не...

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

Используя шаблонный класс в одномерном массиве удалить веденный с клавиатуры элемент - C++
В одномерном массиве удалить веденный с клавиатуры элемент. Определить шаблонный класс. В конструкторе выделить динамическую память для...

Удалить 0 элементы в одномерном массиве - C++
Пожщалуйста, завтра зачет!!! Напишите попроще прогу чтобы удаляла 0 элементы в однородном массиве. Только ввод эл-в пользователем!

5
zss
Модератор
Эксперт С++
6868 / 6430 / 2151
Регистрация: 18.12.2011
Сообщений: 16,899
Завершенные тесты: 1
01.07.2014, 20:05 #2
C++
1
2
3
4
5
6
7
8
9
10
11
int a,b;
cin>>a>>b; // если значения элемента от a до b, то будем удалять 
int n=10;
for(t=0;t<n;t++)
   if(sample[i]>=a && sample[i]<=b)
   {
       for(int j=t;j<n-1;j++)
             sample[i]=sample[i+1];
      n--; // массив уменьшился на 1
      t--; // элемент в текущей позиции новый, его надо проверить
   }
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 702
Регистрация: 14.05.2014
Сообщений: 5,870
Записей в блоге: 1
Завершенные тесты: 5
01.07.2014, 20:14 #3
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
#include <iostream>
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL, "");
    int size = 10;
    int sample[size];
    int m, n;
    setlocale(LC_ALL,"RUS");
    for(int t = 0;t < size; ++t) 
    {   
        sample[t] = t;
        cout << sample[t] << " ";
    }
    cout << "\nВведите границы диапазона через пробел: ";
    cin >> m >> n;
    if (m > n)
    {
        int buf = m;
        m = n;
        n = buf;
    }
    for (int i = 0; i < size; i++)
    {
        if (sample[i] >= m && sample[i] <= n)
        {   
            int j;
            for (j = i; j < size-1; j++)
                sample[j] = sample[j+1];
            sample[j] = 0;
            size--;
            i--;
        }
    }
    for (int i = 0; i < size; i++)
        cout << sample[i] << ' ';
    cout << endl;
    
    return 0;
}
Добавлено через 5 минут
zss, Вы там че-то с переменными в цикле напутали. Где-то t, где-то i.
0
zss
Модератор
Эксперт С++
6868 / 6430 / 2151
Регистрация: 18.12.2011
Сообщений: 16,899
Завершенные тесты: 1
01.07.2014, 20:23 #4
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Где-то t, где-то i.
Забыл, что ТС любит пользоваться нестандартными индексами
0
Leonid96
0 / 0 / 0
Регистрация: 01.07.2014
Сообщений: 7
01.07.2014, 20:40  [ТС] #5
если не сложно, не могли бы прокомментировать строки?
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 702
Регистрация: 14.05.2014
Сообщений: 5,870
Записей в блоге: 1
Завершенные тесты: 5
01.07.2014, 21:24 #6
Leonid96,
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
50
51
52
53
54
#include <iostream>
using namespace std;
 
 
int main()
{
    // Для корректного вывода кириллицы
    setlocale(LC_ALL, "");
    // Задаем размер массива
    int size = 10;
    // Создаем массив
    int sample[size];
    // Объявляем переменные для диапазона
    int m, n;
    // Зполняем элементы массива и выводим их на экран
    for(int t = 0; t < size; ++t) 
    {   
        sample[t] = t;
        cout << sample[t] << " ";
    }
    cout << "\nВведите границы диапазона через пробел: ";
    // Вводим границы диапазона
    cin >> m >> n;
    // Если первое введенное число больше второго, меняем значения местами
    if (m > n)
    {
        int buf = m;
        m = n;
        n = buf;
    }
    for (int i = 0; i < size; i++)
    {
        // Если значение текущего элемента входит в диапазон
        if (sample[i] >= m && sample[i] <= n)
        {   
            int j;
            // то сдвигаем значения следующих элементов на один влево
            for (j = i; j < size-1; j++)
                sample[j] = sample[j+1];
            // (необязательная операция)
            sample[j] = 0;
            // уменьшаем значение размера массива
            size--;
            // уменьшаем значение счетчика, т.к. текущий не проверен на попадание в диапазон
            i--;
        }
    }
    // Выводим значения измененного массива
    for (int i = 0; i < size; i++)
        cout << sample[i] << ' ';
    cout << endl;
    
    return 0;
}
0
01.07.2014, 21:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2014, 21:24
Привет! Вот еще темы с ответами:

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

В одномерном массиве удалить нулевые элементы - C++
Помогите пожалуйста в задании. Одномерный массив: 1) Сформировать одномерный массив целых чисел, используя датчик случайных чисел. 2)...

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

В одномерном массиве найти два максимальных элемента и удалить все элементы между ними - C++
Дана задача : В одномерном массиве найти два максимальных элемента и удалить все элементы между ними. Массив задается случайным образом. ...


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

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

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