Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
13 / 10 / 5
Регистрация: 04.01.2013
Сообщений: 205

Вернуть все четные числа массива в виде нового массива

28.04.2014, 20:37. Показов 3451. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Функция должна вернуть все четные числа массива в виде нового массива.

C++ (Qt)
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
int *f2 (int *mas,int N)
{
    int size=0;
 
    for(int i=0; i<N; i++)
    {
        if(mas[i]%2==0)
        {
            size++;
        }
    }
 
    int *even = new int [size];
 
    
    int j=0;
    for(int i(0); i<N; i++)
    {
        if(mas[i]%2==0)
        {
            even[j] = mas[i];
            j++;
        }
    }
    
    return even;
    delete []even;
    
}
Подскажите, в чем ошибка.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.04.2014, 20:37
Ответы с готовыми решениями:

Удалить из массива все четные числа
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int q = 0; int z = 0; int main() { int size; cout &lt;&lt;...

Удалить из массива все четные числа
Удалить из массива все четные числа не используя вспомогательный массив. int b; int i,j=0; for(i=0;i&lt;n;i++) ...

Вывести все четные и нечетные числа массива
Здравствуйте!!! У меня есть такое задание не могу решать может поможете?? 1. Надо заполнить все дни января(31 день), в которых был...

24
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
28.04.2014, 20:40
Цитата Сообщение от luigration Посмотреть сообщение
delete []even;
Писать не надо, хотя все равно эта строчка не выполняется,
т.к. стоит после return
0
1 / 1 / 1
Регистрация: 28.04.2014
Сообщений: 33
28.04.2014, 20:44
delete не выполняется,выход происходит раньше,return even;
0
13 / 10 / 5
Регистрация: 04.01.2013
Сообщений: 205
28.04.2014, 21:00  [ТС]
Цитата Сообщение от alekopoko Посмотреть сообщение
delete не выполняется,выход происходит раньше,return even;
Это понятно. Эта строчка случайно сюда попала. Что с delete, что без - все равно не работает.
0
1 / 1 / 1
Регистрация: 28.04.2014
Сообщений: 33
28.04.2014, 21:03
luigration, зачем тебе указатель на функцию?
может так?
Code
1
int f2 (int *mas,int N)
0
13 / 10 / 5
Регистрация: 04.01.2013
Сообщений: 205
28.04.2014, 21:12  [ТС]
Цитата Сообщение от alekopoko Посмотреть сообщение
luigration, зачем тебе указатель на функцию?
может так?
Code
1
int f2 (int *mas,int N)
Так то же самое будет..
Мне казалось, что если функция должна возвращать указатель или массив, то нужно писать со свездой, разве нет? Если убрать звезду, то функция не сможет вернуть массив.
Указатели на функцию объявляются по-другому..
C++ (Qt)
1
int(*p)(int)=&f2;
0
 Аватар для cooller
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
28.04.2014, 21:15
Цитата Сообщение от alekopoko Посмотреть сообщение
зачем тебе указатель на функцию?
а где ты увидел там указатель на функцию?

Добавлено через 2 минуты
luigration, мне интересно, а как ты выводишь потом этот массив?
0
13 / 10 / 5
Регистрация: 04.01.2013
Сообщений: 205
28.04.2014, 21:19  [ТС]
Цитата Сообщение от cooller Посмотреть сообщение
а где ты увидел там указатель на функцию?

Добавлено через 2 минуты
luigration, мне интересно, а как ты выводишь потом этот массив?
Я в главной функции пишу
C++ (Qt)
1
cout << f2(mas,n);
И мне кажется, делаю совершенно неправильно.
0
1 / 1 / 1
Регистрация: 28.04.2014
Сообщений: 33
28.04.2014, 21:19
Лучший ответ Сообщение было отмечено luigration как решение

Решение

cooller,
а где ты увидел там указатель на функцию?
забыл прототипизацию указателя на функцию) int (*f2) (int *mas,int N);

luigration,
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
#include <iostream>
 int j=0;
using namespace std;
 int *f2 (int *mas,int N)
{
    int size=0;
 
    for(int i=0; i<N; i++)
    {
        if(mas[i]%2==0)
        {
            size++;
        }
    }
 
    int *even = new int [size];
    for(int i(0); i<N; i++)
    {
        if(mas[i]%2==0)
        {
            even[j] = mas[i];
            j++;
        }
    }
    
    return even;
    
}
 void main()
 {
    int a[]={1,2,3,4,5,6,7,8,9,10};
    int *b;
    b=f2(a,10);
    for(int i=0;i<j;i++)
    printf("%d\n",b[i]);
 }
0
13 / 10 / 5
Регистрация: 04.01.2013
Сообщений: 205
28.04.2014, 21:24  [ТС]
То есть в главной функции мне нужно было создать еще один массив, так?
И почему j - глобальная переменная?
0
 Аватар для cooller
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
28.04.2014, 21:25
Цитата Сообщение от luigration Посмотреть сообщение
И мне кажется, делаю совершенно неправильно.
массив нужно выводить в цикле, а для этого нужно знать его размер
так что ты должен вернуть из цикла и размер тоже, либо использовать std::vector
0
1 / 1 / 1
Регистрация: 28.04.2014
Сообщений: 33
28.04.2014, 21:25
luigration,
Так то же самое будет..
Мне казалось, что если функция должна возвращать указатель или массив, то нужно писать со свездой, разве нет? Если убрать звезду, то функция не сможет вернуть массив.
Указатели на функцию объявляются по-другому..
Код C++ (QT)
1
int(*p)(int)=&f2;
все правильно говоришь да) это я накосячил)
0
13 / 10 / 5
Регистрация: 04.01.2013
Сообщений: 205
28.04.2014, 21:26  [ТС]
Цитата Сообщение от cooller Посмотреть сообщение
массив нужно выводить в цикле, а для этого нужно знать его размер
так что ты должен вернуть из цикла и размер тоже, либо использовать std::vector
Вектором пользоваться не умею. Пока что.
0
1 / 1 / 1
Регистрация: 28.04.2014
Сообщений: 33
28.04.2014, 21:27
luigration,
И почему j - глобальная переменная?
это переменная определяет сколько элементов выводить в Main
ну можно по-разному это все реализовать
0
13 / 10 / 5
Регистрация: 04.01.2013
Сообщений: 205
28.04.2014, 21:29  [ТС]
Цитата Сообщение от alekopoko Посмотреть сообщение
luigration,
это переменная определяет сколько элементов выводить в Main
ну можно по-разному это все реализовать
Не работает все равно..
0
1 / 1 / 1
Регистрация: 28.04.2014
Сообщений: 33
28.04.2014, 21:33
luigration,
Не работает все равно..
почему это?печатается же 2 4 6 8 10
и это массив b
которому ты выделил нужный размер в функции f2
какая ошибка?
0
13 / 10 / 5
Регистрация: 04.01.2013
Сообщений: 205
28.04.2014, 21:34  [ТС]
Цитата Сообщение от alekopoko Посмотреть сообщение
luigration,
почему это?печатается же 2 4 6 8 10
и это массив b
которому ты выделил нужный размер в функции f2
какая ошибка?
Все, понятно теперь. Все работает, пардон. Спасибо огромное!
0
 Аватар для cooller
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
28.04.2014, 21:36
alekopoko, лучше не глобальной переменную делать, а передавать по ссылке
0
1 / 1 / 1
Регистрация: 28.04.2014
Сообщений: 33
28.04.2014, 21:43
cooller, ну с точки зрения затрат памяти или с точки зрения - что где-то там случайно совпадут индентификаторы и я не замечу, то да. Но программа мизерная,так что разницы нет.
Ну если я правильно понимаю, то ты намекаешь что это плохой стиль программирования) да) не спорю)
0
13 / 10 / 5
Регистрация: 04.01.2013
Сообщений: 205
28.04.2014, 22:22  [ТС]
Цитата Сообщение от cooller Посмотреть сообщение
alekopoko, лучше не глобальной переменную делать, а передавать по ссылке
Что именно передавать по ссылке? Вернее где ее передавать?

Добавлено через 15 минут
Цитата Сообщение от alekopoko Посмотреть сообщение
cooller, ну с точки зрения затрат памяти или с точки зрения - что где-то там случайно совпадут индентификаторы и я не замечу, то да. Но программа мизерная,так что разницы нет.
Ну если я правильно понимаю, то ты намекаешь что это плохой стиль программирования) да) не спорю)
А как сделать без глобализации j?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.04.2014, 22:22
Помогаю со студенческими работами здесь

Дан одномерный массив А, состоящий из N элементов. Перенести в начало массива все четные элементы, а в конец массива - все нечетные
Помогите, пожалуйста. &gt;&gt;&quot;Дан одномерный массив А, состоящий из N элементов. Перенести в начало массива все четные элементы, а в конец...

Сколько элементов встречается в массиве по 3 раза
Помогите, пожалуйста. &gt;&gt;&quot;Дан одномерный массив А, состоящий из N элементов. Сколько значений элементов встречается в массиве по 3...

Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый массив переписать все четные
Помогите сделать данную программу: Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый массив переписать...

Вывести все четные числа массива в порядке возрастания их индексов, а затем все нечетные в порядке убывания
Дан целочисленный массив размера N.Вывести в начале все содержащиеся в данном массиве четные числа в порядке возрастания их индексов, а...

Не нарушая порядка следования нужно расположить в начале массива все четные числа а затем нечетные
Помогите пожалуйста с написанием программы. Не нарушая порядка следования нужно расположить в начале массива все четные числа а затем...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru