0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 9
1

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

21.11.2014, 10:49. Показов 1293. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2014, 10:49
Ответы с готовыми решениями:

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

Определение кол-ва нечетных элементов массива с функцией
Здравствуйте,помогите пожалуйста с нахождением ошибки в коде,программа всегда выдает 0. #include...

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

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

3
51 / 51 / 21
Регистрация: 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
Знаток
156 / 156 / 185
Регистрация: 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
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 9
21.11.2014, 18:59  [ТС] 4
Благодарю за подсказки. Спасибо, что отозвались, вы мне очень помогли
0
21.11.2014, 18:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2014, 18:59
Помогаю со студенческими работами здесь

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

Найти объём куба функцией; реализовать ввод и вывод элементов массива в виде функций
1) Написать функцию для вычисления объема куба. Вычислить объем куба для заданных пользователем...

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru