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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Garret192
1 / 1 / 0
Регистрация: 21.10.2009
Сообщений: 84
#1

Отрицательные элементы массива А(N) переставить в начало массива и расположить их в порядке возрастания - C++

07.06.2010, 16:57. Просмотров 538. Ответов 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
#include<iostream.h>
#include<stdlib.h>
const int n=46;
int f( int *a, int n);
 
 
int main()
{
    int a[n],n,i;
    cout<<"Vvedi kol elementov "<<endl;
    cin>>n;
    cout<<"Vvedi elementi "<<endl;
    for(i=0;i<n;i++)
    cin>>a[i];
    f(a,n);
 
    for(i=0;i<n;i++)
    cout<<a[i]<<' ';
    system ("pause");
    return 0;
}
int f( int *a, int n)
{
  for(int i=0;i<n;i++)
  if(a[i]<0)
  return a[i];
}
Поправьте пожалуйста и дайте советы на будущее.
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2010, 16:57     Отрицательные элементы массива А(N) переставить в начало массива и расположить их в порядке возрастания
Посмотрите здесь:

Переставить все отрицательные элементы в начало массива C++
C++ Отсортировать элементы массива: отрицательные – в начало массива, положительные – в конец
Не использую доп. элементов массива переставить элементы массива в обратном порядке C++
C++ Расположить элементы одномерного массива в следующем порядке: сначала отрицательные, затем нули, потом положительные
C++ Массив. Положительные элементы массива а, записанные в том же порядке + отрицательные элементы массива b, записанные в обратном порядке
C++ Поместить элементы массива M в начало массива B в обратном порядке
C++ Расположить отрицательные элементы массива в порядке убывания
C++ Расположить элементы массива в порядке возрастания
C++ Элементы на нечетных местах массива расположить в порядке возрастания
Переставить в начало массива элементы стоящие на нечетных позициях C++
Переставить в массиве все отрицательные элементы в начало массива, сохраняя относительный порядок C++
Элементы массива, стоящие на нечётных позициях, переставить в начало массива, а на чётных - в конец C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1463 / 830 / 69
Регистрация: 26.03.2010
Сообщений: 2,830
07.06.2010, 17:04     Отрицательные элементы массива А(N) переставить в начало массива и расположить их в порядке возрастания #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
#include <iostream>
bool neg_el (int *, int);
 
int main()
{
    // initial
    const int size=20;
    int MAS[size];
    // fill and output
    std::cout << "Input elements:\n";
    for (int i=0; i<size; i++) {
        std::cout << "MAS["<< i <<"]: ";
        std::cin >> MAS[i]; }
    // output negative elements
    std::cout << "Negative elements:\n";
    for (int i=0; i<size; i++)
        if (neg_el (MAS, i)) std::cout << MAS[i] << " ";
    
    system ("pause");
    return 0;
}
 
bool neg_el (int *MAS, int el)
{
    if (MAS[el]<0) return true;
    return false;
}
Garret192
1 / 1 / 0
Регистрация: 21.10.2009
Сообщений: 84
07.06.2010, 17:58  [ТС]     Отрицательные элементы массива А(N) переставить в начало массива и расположить их в порядке возрастания #3
Ну а если нужно в дальнейшем использовать массив отрицательных элементов, например упорядочить их.

Добавлено через 6 минут
У меня такая задача
Отрицательные элементы массива А(N) переставить в начало массива и расположить их в порядке возрастания.
neske
1463 / 830 / 69
Регистрация: 26.03.2010
Сообщений: 2,830
07.06.2010, 18:02     Отрицательные элементы массива А(N) переставить в начало массива и расположить их в порядке возрастания #4
Я бы сделал так))

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
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
bool neg_el (int *, int);
 
int main()
{
    // initial
    const int size=20;
    int MAS[size];
    // fill and output
    std::cout << "Input elements:\n";
    for (int i=0; i<size; i++) {
        std::cout << "MAS["<< i <<"]: ";
        std::cin >> MAS[i]; }
    // sort negative elements
    std::vector <int> neg_elem;
    for (int i=0; i<size; i++)
        if (neg_el (MAS, i))  neg_elem.push_back (MAS[i]);
    sort (neg_elem.begin(), neg_elem.end());
    // output
    std::cout << "Sort negative elements:\n";
    std::copy (neg_elem.begin(), neg_elem.end(), std::ostream_iterator <int> (std::cout, " "));
    std::cout << std::endl;
 
    system ("pause");
    return 0;
}
 
bool neg_el (int *MAS, int el)
{
    if (MAS[el]<0) return true;
    return false;
}
Yandex
Объявления
07.06.2010, 18:02     Отрицательные элементы массива А(N) переставить в начало массива и расположить их в порядке возрастания
Ответ Создать тему
Опции темы

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