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

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

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

Удаление элементов массива функцией - C++

21.11.2014, 10:49. Просмотров 479. Ответов 3
Метки нет (Все метки)

Здравствуйте, уважаемые форумчане

Задача состоит в том, чтобы при помощи функции создать массив с выводом на печать, а затем удалить чётные элементы массива. Проблема в том, что функция удаления чётных элементов Mod2Del не работает. Вторые сутки бьюсь с этой проблемой и не могу понять, что идёт не так

При этом я уверен, что ошибка моя банальна и проста, как три рубля. Пожайлуста, помогите её найти

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
#include "iostream"
#include "ctime"
#include "stdafx.h"
 
using namespace std;
 
void Array1(int &size) // Ф-я заполнения 1-мерного м-ва с выводом
{
    int arr1[100], i; // Объявление м-ва размерностью 100 эл-в, объявление счётчика цикла for
    cout << "Array: " << endl;
    srand(time(NULL)); // Зерно ф-ии rand
    for (i = 0; i < size; i++) // Цикл for с 0 по size эл-ты м-ва
    {
        arr1[i] = rand() % 99; // Заполнение м-ва рандомными числами от 0 до 99
        cout << arr1[i] << endl; // Вывод эл-в массива
    }
    cout << endl;
}
 
void Mod2Del(int &size)
{
    int arr1[100], i;
    float a;
    cout << "Mod 2 elements delete: " << endl;
    for (i = 0; i < size; i++) 
    {
        a = arr1[i];
        if (a % 2 = 0) arr1[i] = 0;
        cout << arr1[i] << endl;
    }
    cout << endl;
}
 
void main()
{
    int arr1[100], size; // Объявление пер-ой размерности массива 
    cout << "Input size of array: ";
    cin >> size; // Ввод размерности массива
    Array1(size); // Вызов ф-и Array1 с пар-м size
    Mod2Del(size);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2014, 10:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удаление элементов массива функцией (C++):

Удаление четных элементов массива,больших среднего арифметического всех элементов массива - C++
Доброго времени суток! Помогите пожалуйста) Вот задание:Из массива удалить четные элементы, имеющие значение больше среднего...

итересная прога с функцией распределения элементов массива:) - C++
- вводим одномерный символьный массив #include &lt;iostream&gt; using namespace std; //сюда функцию распределения int main() { char...

Сортировка элементов массива структур шаблонной функцией - C++
Как отсортировать с помощью шаблонной функции по значению полей в массиве структур? Кто знает, подскажите пожалуйста. Программа, которую...

Определение кол-ва нечетных элементов массива с функцией - C++
Здравствуйте,помогите пожалуйста с нахождением ошибки в коде,программа всегда выдает 0. #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; ...

Заполнение массива с клавы, и подсчет суммы элементов с функцией - C++
#include &lt;iostream&gt; using namespace std; int sum(int arr , int size) { int rezult = 0; for (int i = 0; i &lt; size; i++) ...

Двумерный массив с функцией ( найти среднеквадратичное значение положительных элементов каждой строки массива) - C++
Ребята привет!!! Попрубуйте помочь: Может че получится..... Дан массив а(8,5). С использованием функции найти среднеквадратичное...

3
Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
21.11.2014, 11:03 #2
1. В 28 строке исправьте
C++
1
if (a % 2 = 0) arr1[i] = 0;
на
C++
1
if (a % 2 == 0) arr1[i] = 0;
2. В 14 строке
C++
1
arr1[i] = rand() % 99; // Заполнение м-ва рандомными числами от 0 до 99
на самом деле заполнение будет числами от 0 до 98, но это не суть...

3. Ну и по факту вы не удаляете вовсе элементы из массива, а просто обнуляете их, т.е. главную задачу программы вы не реализовываете своим кодом.
0
Amandosov
Знаток
156 / 156 / 65
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
21.11.2014, 11:17 #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
43
44
45
46
47
#include <iostream>
using namespace std;
 
void Array1(int* arr1,int &size) // Ф-я заполнения 1-мерного м-ва с выводом
{
    int i; // Объявление м-ва размерностью 100 эл-в, объявление счётчика цикла for
    cout << "Array: " << endl;
    srand(time(NULL)); // Зерно ф-ии rand
    for (i = 0; i < size; i++) // Цикл for с 0 по size эл-ты м-ва
    {
        arr1[i] = rand() % 99; // Заполнение м-ва рандомными числами от 0 до 99
        cout << arr1[i] <<' '; // Вывод эл-в массива
    }
    cout << endl;
}
 
void Mod2Del(int* arr1,int &size)
{
    int i;
    cout << "Mod 2 elements delete: " << endl;
    for (i = 0; i < size; i++) 
    {
        
        if (arr1[i] % 2 == 0) 
        {for(int j=i;j<size-1;j++)
        arr1[j]=arr1[j+1];
        size--;
        i--;}
    }
}
void COUTARRAY(int* arr1,int &size)
{
 for(int i=0;i<size;i++)
 cout<<arr1[i]<<' ';    
}
 
int main()
{
    int arr1[100], size; // Объявление пер-ой размерности массива 
    cout << "Input size of array: ";
    cin >> size; // Ввод размерности массива
    Array1(arr1,size); // Вызов ф-и Array1 с пар-м size
    Mod2Del(arr1,size);
    COUTARRAY(arr1,size);
 
return 0;
}
0
KKris1988
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 9
21.11.2014, 18:59  [ТС] #4
Благодарю за подсказки. Спасибо, что отозвались, вы мне очень помогли
0
21.11.2014, 18:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2014, 18:59
Привет! Вот еще темы с ответами:

Удаление из одного массива элементов второго массива и запись результата в третий - C++
Есть массив masA (длина lenA), есть массив masB (длина lenB). Необходимо из массива masA удалить элементы, входящие в массив masB и...

удаление элементов массива, которые равны сумме предыдущего и следующего элементов - C++
Нужно написать подпрограмму которая удаляет элементы массива, которые равны сумме предыдущего и следующего элементов

Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции - C++
Что исправить? #include &lt;stdio.h&gt; #define N 10 int udalenie(int A,int k ) { int i; for(i=k;i&lt;N;i++)

удаление элементов массива, совпадающих с элементами другого массива - C++
Здравствуйте, помогите найти ошибку в коде; суть задачи такая: удалить элементы из 1 массива, которые содержатся во 2 массиве. Как я...


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

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

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