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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Wolandello
1 / 1 / 0
Регистрация: 06.06.2009
Сообщений: 35
#1

Удаления елементов из массива - C++

16.07.2009, 13:03. Просмотров 1407. Ответов 11
Метки нет (Все метки)

Народ есть такая задача: зделать массив из 50 случайных чисел из пормежутка А...В. Удалить из массива все його непарные елементы. Напечатать масив и вказать сколько елеметнов было удалено.
Можете подсказать как именно удалять елементы. Я так понимаю надо их зсувать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2009, 13:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удаления елементов из массива (C++):

нужно убрать однаковые елементы в списке(есть код програмы) только нехватает удаления однаковых елементов - C++
#include<iostream> #include<string> using namespace std; struct List1 { string a; List1 * next; }; struct...

количество елементов массива - C++
подсчитать количество елементов массива c(6)=(2,1;3,6;-6,3;4,1;2,2;-2,3),значение которых больше 2,3.

Количество елементов массива - C++
Вчера тоже встретился с этой проблемой, но подумал что и так много у вас на форуме спрашиваю, так что не спросил... НО сегодня опять та...

Произведение елементов массива - C++
//в массиве состоящем из Н целочисленных елементов вычислить 1)сумму неотрицательных елементов этого массива //2)произведение елементов...

замена елементов одномерного массива - C++
#include<string> #include <cmath> #include <iostream> #include<locale> using namespace std; const int max_size=255; int...

Как выбрать 6 случайных елементов из массива - C++
Есть массив из 9 елементов как из него случайным образом выбрать 6?

11
paradise@falls
1 / 1 / 0
Регистрация: 15.05.2009
Сообщений: 8
16.07.2009, 13:21 #2
Ну как я понимаю юзер вводит число А и Б,

1. Через random начинай брать числа, попутно проверяя если они между А и Б... Если да, то ложи в масив... Если нет, по бери след. число через random...

2. Теперь у нас есть масив с 50 числами. Тупо бегай через цикл по масиву и заменяй непарные эллементы на -1 например..

3. Когда печатаешь масив, то проверяй
C++
1
2
if(array[index] != -1)
   cout << array[index];
Тут же через какой нить каунтер считай колличество (-1)...

Это и есть кол. удаленных элементов...

Вроде все только написать осталось...
0
Wolandello
1 / 1 / 0
Регистрация: 06.06.2009
Сообщений: 35
16.07.2009, 13:28  [ТС] #3
Спасибі чувак, а то я думав зсувати елементи масиву
0
mamedovvms
2917 / 838 / 93
Регистрация: 30.04.2009
Сообщений: 2,627
16.07.2009, 13:28 #4
Цитата Сообщение от paradise@falls Посмотреть сообщение
Через random начинай брать числа, попутно проверяя если они между А и Б... Если да, то ложи в масив... Если нет, по бери след. число через random...
не обязательно проверять можно просто random сделать так что бы не проверято, точнее чтобы он брал именно числа из этого промежутка
0
Yurii_74
paladin
279 / 179 / 3
Регистрация: 25.02.2009
Сообщений: 592
16.07.2009, 13:30 #5
Цитата Сообщение от paradise@falls Посмотреть сообщение
Ну как я понимаю юзер вводит число А и Б,

1. Через random начинай брать числа, попутно проверяя если они между А и Б... Если да, то ложи в масив... Если нет, по бери след. число через random...
небольшое дополнение:
можно сразу генерировать "правильные" числа: min(a,b) + rand(abs(a-b)+1);
1
Puporev
Модератор
51980 / 39839 / 13232
Регистрация: 18.05.2008
Сообщений: 91,667
16.07.2009, 13:33 #6
Удалить из массива все його непарные елементы. Напечатать масив и вказать сколько елеметнов было удалено.
Удалить элементы из массива, это значит произвести сдвиг массива столькот раз сколько нечетных элементов, а число сдвигов и будет число удаленных элементов. Замена элементов другими, не есть их удаление.

Добавлено через 58 секунд
Тем более предварительный их выбор, это скорее на шулерство похоже.
0
paradise@falls
1 / 1 / 0
Регистрация: 15.05.2009
Сообщений: 8
16.07.2009, 13:47 #7
Цитата Сообщение от mamedovvms Посмотреть сообщение
не обязательно проверять можно просто random сделать так что бы не проверято, точнее чтобы он брал именно числа из этого промежутка
Конечно можно, через %(B-A) например... и потом добавлять А к результату...
Я попроще написал...

Добавлено через 3 минуты 33 секунды
Цитата Сообщение от Puporev Посмотреть сообщение
Удалить элементы из массива, это значит произвести сдвиг массива столькот раз сколько нечетных элементов, а число сдвигов и будет число удаленных элементов. Замена элементов другими, не есть их удаление.

Добавлено через 58 секунд
Тем более предварительный их выбор, это скорее на шулерство похоже.
Можно так, но ИМХО каждый раз передвигать масив не совсем верно...

Можно после того как прошлишь по масиву переписать его в новый (без (-1)-ек)...
А потом удалить старый...
0
mamedovvms
2917 / 838 / 93
Регистрация: 30.04.2009
Сообщений: 2,627
16.07.2009, 13:50 #8
Цитата Сообщение от paradise@falls Посмотреть сообщение
Можно после того как прошлишь по масиву переписать его в новый (без (-1)-ек)...
А потом удалить старый...
но можно тогда их даже и не заменять а просто проходить по новому массиву и смотреть есть ли там такой элемент, если есть то просто переходить к следующему , а если нет то записывать его в новый массив
0
Puporev
Модератор
51980 / 39839 / 13232
Регистрация: 18.05.2008
Сообщений: 91,667
16.07.2009, 13:56 #9
Дело в том что создать новый массив конечно проще, но в задании идет речь о преобразованиях в данном массиве. Это задача такая.
0
mamedovvms
2917 / 838 / 93
Регистрация: 30.04.2009
Сообщений: 2,627
16.07.2009, 14:05 #10
Цитата Сообщение от Puporev Посмотреть сообщение
Дело в том что создать новый массив конечно проще, но в задании идет речь о преобразованиях в данном массиве. Это задача такая.
я совершенно согласен, а создание нового массива это как пойти в лес за грибами а набрать ягод
0
Puporev
Модератор
51980 / 39839 / 13232
Регистрация: 18.05.2008
Сообщений: 91,667
16.07.2009, 14:18 #11
Есть умельцы, которые решают эту задачу еще проще, просто сначала выводят на экран исходный массив, а затем только четные его элементы.
0
insolent
826 / 344 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
16.07.2009, 15:35 #12
Wolandello, можно как
так
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
55
56
57
58
59
60
#include <iostream>
using namespace std;
#include <ctime>
#define  n 50
//////////////////////////////////////////////////////////////////////////
void out(int *ar);
void vin(int *ar,int a,int b);
void oper(int *ar);
//////////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
    setlocale(0,"");
    int ar[n],
        a,b;
    cout << "Введите нижнюю границу промежутка: ";
    wcin >> a;
    cout << "Введите верхнюю границу промежутка: ";
    wcin >> b;
    _flushall();
    srand(unsigned (time(0)));
    vin(ar,a,b);
    cout << "Массив:" << endl;
    out(ar);
    oper(ar);
    getchar();
    return 0;
}
//////////////////////////////////////////////////////////////////////////
void out(int *ar)
{
    for(int i = 0; i < n;i++)
    {
        cout.width(4);
        cout << ar[i];
    }
    cout << "\n\n";
}
//////////////////////////////////////////////////////////////////////////
void vin(int *ar,int a,int b)
{
    for(int i = 0; i < n;i++)
        ar[i] = a + rand()%(b - a + 1);
}
//////////////////////////////////////////////////////////////////////////
void oper(int *ar)
{
    int x = 0;
    for(int i = 0; i < n;i++)
    {
        if(ar[i]%2 == 0)
            ar[x++] = ar[i];
    }
    cout << "Массив после преобразования:" << endl;
    for(int i = 0; i < n-x;i++)
    {
        cout.width(4);
        cout << ar[i];
    }
    cout << endl;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2009, 15:35
Привет! Вот еще темы с ответами:

шаблон функции который принимает в параметры массив количиство елементов и должен найти сумму елементов массив - C++
шаблон функции который принимает в параметры массив количиство елементов и должен найти сумму елементов массива

Создать генератор чисел на основе массива из 3 елементов - C++
Нужно сделать генератор чисел на основе массива из 3 елементов. Например 000, 001, ... , 011, 012, ... , 999 Никак не могу цикл...

Не получается. Умножение елементов массива на последний элемент - C++
#include &lt;iostream&gt; using namespace std; int main() { int mas; int i; for (i=0; i&lt;10; i++) { cout &lt;&lt; &quot;&quot;&lt;&lt; &quot;:&quot;; cin...

Посчитать кол-во елементов массива и их сумму, который расположен в диапазоне от R1 до R2 - C++
Посчитать кол-во елементов массива и их сумму, который расположен в диапазоне от R1 до R2(массив сталый, диапазон указывает пользователь). ...


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
16.07.2009, 15:35
Ответ Создать тему
Опции темы

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