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

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

Восстановить пароль Регистрация
 
Leonid96
0 / 0 / 0
Регистрация: 01.07.2014
Сообщений: 7
01.07.2014, 19:51     В одномерном массиве удалить те элементы, которые расположены в заданном с клавиатуры диапазоне #1
в одномерном массиве удалить те элементы, которые расположены в заданном с клавиатуры диапозоне С++

Добавлено через 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 элемент удалить можно было?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2014, 19:51     В одномерном массиве удалить те элементы, которые расположены в заданном с клавиатуры диапазоне
Посмотрите здесь:

Найти элементы, которые встречаються в массиве не менее двух раз и лежащие в заданном диапазоне C++
Удалить 0 элементы в одномерном массиве C++
C++ В заданном массиве чисел в диапазоне [-99; 99] замените элементы с к1-го по к2-й на противоположные по знаку
C++ В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах
В массиве С из 25 целых элементов вывести на экран те элементы, которые расположены после максимального C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5946 / 5551 / 1784
Регистрация: 18.12.2011
Сообщений: 14,180
Завершенные тесты: 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--; // элемент в текущей позиции новый, его надо проверить
   }
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1858 / 1654 / 577
Регистрация: 14.05.2014
Сообщений: 4,750
Записей в блоге: 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.
zss
Модератор
Эксперт С++
 Аватар для zss
5946 / 5551 / 1784
Регистрация: 18.12.2011
Сообщений: 14,180
Завершенные тесты: 1
01.07.2014, 20:23     В одномерном массиве удалить те элементы, которые расположены в заданном с клавиатуры диапазоне #4
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Где-то t, где-то i.
Забыл, что ТС любит пользоваться нестандартными индексами
Leonid96
0 / 0 / 0
Регистрация: 01.07.2014
Сообщений: 7
01.07.2014, 20:40  [ТС]     В одномерном массиве удалить те элементы, которые расположены в заданном с клавиатуры диапазоне #5
если не сложно, не могли бы прокомментировать строки?
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1858 / 1654 / 577
Регистрация: 14.05.2014
Сообщений: 4,750
Записей в блоге: 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;
}
Yandex
Объявления
01.07.2014, 21:24     В одномерном массиве удалить те элементы, которые расположены в заданном с клавиатуры диапазоне
Ответ Создать тему
Опции темы

Текущее время: 16:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru