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

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

Восстановить пароль Регистрация
 
wallaby
0 / 0 / 1
Регистрация: 01.02.2013
Сообщений: 39
17.07.2014, 01:18     Получить массив, состоящий из отрицательных элементов исходного массива #1
Есть задание
Написать функцию (процедуру)

с параметрами для обработки одномерного массива целочисленных данных

(количество элементов массива ≤50). Функция (процедура) должна возвращать новый

массив, состоящий из отрицательных элементов исходного массива.
Я написал программу, которая собственно и выводит отрицательные элементы. Но нужно создать функцию.
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
 
int main()
{ 
    int mass[100];
    int kol,min;
    cout<<"vvedite kolichestvo massiva: ";
    cin>>kol;
    for(int i=0;i<kol;i++)
    {
        cin>>mass[i];
    }
 
    cout<<"Vash massiv s otricatelbnumi: ";
 
    for(int i=0;i<kol;i++){
    
        if (mass[i]<0){
            cout<<mass[i];
        }
    }
  getch();
  return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.07.2014, 01:18     Получить массив, состоящий из отрицательных элементов исходного массива
Посмотрите здесь:

Получить новый массив, состоящий из неповторяющихся элементов исходного C++
Получить из исходного массива массив отрицательных чисел и отсортировать его по убыванию методом выбора C++
Массив: Получить сумму положительных и отрицательных элементов массива C++
Создать новый одномерный массив, состоящий из отрицательных элементов данного массива 3х3 в заданной матрицы C++
C++ Получить новый массив, состоящий из сумм цифр элементов исходного массива
C++ Функция должна возвращать новый массив, состоящий из отрицательных элементов исходного массива
C++ Создать массив состоящий из различных элементов исходного массива
Получить новый массив, состоящий из цифр элементов исходного массива, стоящих в старших разрядах C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bazJaz
 Аватар для bazJaz
33 / 30 / 10
Регистрация: 11.07.2014
Сообщений: 388
17.07.2014, 01:27     Получить массив, состоящий из отрицательных элементов исходного массива #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
для чего getch(); ?

Надо создать функцию и передать ей масив, в ней будет
C++
1
2
3
4
5
6
7
8
cout<<"Vash massiv s otricatelbnumi: ";
 
    for(int i=0;i<kol;i++){
    
        if (mass[i]<0){
            cout<<mass[i];
        }
    }
Передача массива произвольного размера в функцию


Это можно сделать несколькими способами:

1. Использовать шаблоны. В таком случае заголовок функции будет выглядеть как
C++
1
template <int N> void trans (int (&matrix)[N][N]) // передача матрицы по ссылке
Использование:
C++
1
2
int m[5][5];
trans(m);
2. Использовать массив указателей на массивы:
C++
1
void trans (int **matrix, int n)
Использование:
1) Вариант 1 (статическое распределение памяти):
C++
1
2
3
int m1[5][5];
int* m[] = {m1[0], m1[1], m1[2], m1[3], m1[4]};
trans(m, 5);
2) Вариант 2 (динамическое распределение памяти):
C++
1
2
3
4
int** m = new int*[5];
for (int i=0; i<5; i++)
m[i] = new int[5];
trans(m, 5);
3. Использовать STL:
C++
1
2
3
4
#include <vector>
typedef std::vector<int> row;
typedef std::vector<row> matrix;
void trans(matrix& mat);
Использование:
C++
1
2
matrix m(5, row(5));
trans(m);
Достоинством первого метода является то, что компилятор сам определяет размеры массива (снижается число потенциальных ошибок).
Принципиальное достоинство второго метода - возможность работы с матрицами неуказанного при компиляции размера.
Третий метод обладает обоими достоинствами (безопасность и динамические размеры), но требует знания STL.

PS Первый и второй методы можно объединить:
C++
1
2
3
4
5
6
7
8
9
void trans (int **matrix, int n)
 
template <int N> inline void trans (int (&matrix)[N][N]) 
{
int *m[N];
for (int i=0; i<N; i++)
m[i] = matrix[i];
trans(m, N);
}
Здесь основная логика реализуется в функции, написанной по первому методу, но имеется также удобная шаблонная функция-обертка для статических матриц.

Добавлено через 5 минут
С функцией!
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
#include <iostream>
#include <stdlib.h>
using namespace std;
void f1(int mas[],int kol){
    for(int i=0;i<kol;i++){
        if (mas[i]<0){
            cout<<mas[i];
        }
    }
}
 
int main()
{ 
    int mass[100];
    int kol,min;
    cout<<"vvedite kolichestvo massiva: ";
    cin>>kol;
    for(int i=0;i<kol;i++)
    {
        cin>>mass[i];
    }
 
    cout<<"Vash massiv s otricatelbnumi: ";
    f1(mass,kol);
    
 
  return 0;
}
Yandex
Объявления
17.07.2014, 01:27     Получить массив, состоящий из отрицательных элементов исходного массива
Ответ Создать тему
Опции темы

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