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

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

17.07.2014, 01:18. Показов 1314. Ответов 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;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2014, 01:18
Ответы с готовыми решениями:

Сформировать новый массив, состоящий из индексов отрицательных элементов исходного массива
Формировать массив B(n, m) случайных чисел отрезка (-10; 165). Сформировать массив А(k), состоящий...

Функция должна возвращать новый массив, состоящий из отрицательных элементов исходного массива
У меня есть задание: написать функцию (процедуру) с параметрами для обработки одномерного массива...

Получить массив, состоящий из элементов исходного массива, которые кратны двум
1. Задан массив А(N). Получить из него массив В, состоящий из элементов массива А, которые кратны...

Получить новый массив, состоящий из сумм цифр элементов исходного массива
составить схему алгоритма и программу решения задачи. Ввести массив, состоящий из 9 элементов...

1
35 / 32 / 21
Регистрация: 11.07.2014
Сообщений: 390
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;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.07.2014, 01:27
Помогаю со студенческими работами здесь

Получить новый массив, состоящий из цифр элементов исходного массива, стоящих в старших разрядах
Ввести целочисленный массив, состоящий из 7 элементов(семь двузначных чисел). Получить новый...

Дан массив, состоящий из 15 элементов целого типа. Получить новый массив, как разность между элементами исходного массив
Дан массив, состоящий из 15 элементов целого типа. Получить новый массив, как разность между...

Получить новый массив, состоящий из неповторяющихся элементов исходного
Условие: Из произвольного одномерного массива целых чисел М1 получить массив М2, состоящий лишь...

Получить массив, состоящий только из четных чисел исходного массива
Здравствуйте, помогите решить проблему. Делаю задание &quot;.Составьте программу для решения следующей...


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

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

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