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

Функция должна возвращать новый массив, состоящий из отрицательных элементов исходного массива - C++

Восстановить пароль Регистрация
 
wallaby
0 / 0 / 1
Регистрация: 01.02.2013
Сообщений: 39
25.07.2014, 00:07     Функция должна возвращать новый массив, состоящий из отрицательных элементов исходного массива #1
У меня есть задание:
написать функцию (процедуру) с параметрами для обработки одномерного массива целочисленных данных (количество элементов массива ≤50). Функция (процедура) должна возвращать новый массив, состоящий из отрицательных элементов исходного массива.

Есть функция, мне помогли ее написать:
C++
1
2
3
4
5
6
7
8
int otricatel (int mass[], int n,int result[])
{
     int count=0;
     for(int i=0;i<n;i++)
           if(mass[i]<0)
                result[count++]=mass[i];
    return count; // возвращаем к-во найденных чисел
}
Функция работает отлично, я проверял. Но в задании указано что функция должна возвращать новый массив, а не количество найденых. Я не знаю как правильно ее написать, чтобы было строго по заданию. Надеюсь очень на Вашу помощь. Спасибо)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2014, 00:07     Функция должна возвращать новый массив, состоящий из отрицательных элементов исходного массива
Посмотрите здесь:

Получить новый массив, состоящий из неповторяющихся элементов исходного C++
C++ Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия"
Создать новый одномерный массив, состоящий из отрицательных элементов данного массива 3х3 в заданной матрицы C++
C++ Получить новый массив, состоящий из сумм цифр элементов исходного массива
C++ Получить массив, состоящий из отрицательных элементов исходного массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6176 / 2905 / 284
Регистрация: 04.12.2011
Сообщений: 7,733
Записей в блоге: 3
25.07.2014, 00:44     Функция должна возвращать новый массив, состоящий из отрицательных элементов исходного массива #2
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
#include <iostream>
using namespace std;
int otricatel(int arr_in[], int n, int **arr_out){
    if(n < 1) return -1;
    int c=0;
    for(int i = 0; i < n; ++i){
        if (arr_in[i] < 0)
        c++;//:)
    }
cout<<c<<endl;
*arr_out = new int[c];
int *p=*arr_out;//для читабельности
int j=0;
for(int i = 0; i < n; ++i){
        if (arr_in[i] < 0)
        p[j++]=arr_in[i];
    }
    return c;
}
 
int main()
{
const int n = 10;
int a[]={ 1, 2, 3, -4, 5, -6, 7, 8, -9, 10 };
int *b=0;
int c = otricatel(a, n, &b);
cout<<c<<" operations has been done"<<endl;
for(int i = 0; i < c; ++i) cout<<b[i]<<" ";
if(b) delete []b;//так как заранее неизвестно сколько отрицательных (размер b) то память выделяется в ф-ции и её нужно освободить
cin.get();
return 0 ;
}
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
25.07.2014, 00:52     Функция должна возвращать новый массив, состоящий из отрицательных элементов исходного массива #3
Она у вас и так вернет новый массив
C++
1
2
3
int num =  otricatel ( mass,  n,result);
for(int i=0;i < num;i++)
  std::cout << result[i] << ' ';
wallaby
0 / 0 / 1
Регистрация: 01.02.2013
Сообщений: 39
25.07.2014, 01:30  [ТС]     Функция должна возвращать новый массив, состоящий из отрицательных элементов исходного массива #4
Так функция должна явно возвращать массив, а у меня количество.
Yandex
Объявления
25.07.2014, 01:30     Функция должна возвращать новый массив, состоящий из отрицательных элементов исходного массива
Ответ Создать тему
Опции темы

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