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

Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Naked
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 18
18.11.2010, 12:41     Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным. #1
Помогите плз написать...
Написать функцию, которая переставляет элементы массива типа int
так, что все положительные элементы предшествуют отрицательным.

3аранее спс.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2010, 12:41     Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным.
Посмотрите здесь:

написать функцию которая формирует новый массив, элементами которого является все четные элементы, расположенные в нечетных ячейках заданного массива C++
написать функцию, которая формирует новый массив, элементами которого является все четные элементы, расположенные в нечетных ячейках заданного массива C++
C++ Написать функцию, которая транспонирует заданный в качестве параметра массива типа int
C++ Вывести элементы массива на промежутке [ a,b ], вычислить количество элементов массива, заменить все положительные элементы
Преобразуйте массив так, чтобы все положительные элементы массива стали отрицательными и наоборот C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
18.11.2010, 13:00     Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void func(int *mas, int N)
{
    int l=0, r=N-1, i;
    while(l<r)
    {
        for(i=l; i<N; i++)
            if(mas[i]<0)
                break;
        l=i;
        for(i=r; i>=0; i--)
            if(mas[i]>=0)
                break;
        r=i;
        if(l<r)
        {
            int temp=mas[l]; mas[l]=mas[r]; mas[r]=temp;
        }
    }
}
Naked
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 18
13.12.2010, 21:49  [ТС]     Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным. #3
А как будет выглядеть тестирующая программа?
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
13.12.2010, 21:50     Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным. #4
язык какой?
Mayonez
13.12.2010, 22:09
  #5

Не по теме:

Цитата Сообщение от valeriikozlov Посмотреть сообщение
язык какой?
русский

asics
13.12.2010, 22:10
  #6

Не по теме:

Mayonez, запетросянил.

Naked
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 18
13.12.2010, 22:19  [ТС]     Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным. #7
На языке Cи
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
13.12.2010, 22:51     Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным. #8
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
37
38
#include <stdio.h>
#include <malloc.h>
void func(int *mas, int N)
{
        int l=0, r=N-1, i;
        while(l<r)
        {
                for(i=l; i<N; i++)
                        if(mas[i]<0)
                                break;
                l=i;
                for(i=r; i>=0; i--)
                        if(mas[i]>=0)
                                break;
                r=i;
                if(l<r)
                {
                        int temp=mas[l]; mas[l]=mas[r]; mas[r]=temp;
                }
        }
}
 
int main() {
int *mas, N, i;
printf("N= ");
scanf("%d", &N);
mas=(int*) malloc(N*sizeof(int));
for(i=0; i<N; i++)
{
    printf("[%d]= ", i);
    scanf("%d", &mas[i]);
}
func(mas, N);
for(i=0; i<N; i++)
    printf("%d ", mas[i]);
 
   return 0;
}
Naked
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 18
17.12.2010, 16:14  [ТС]     Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным. #9
mas=(int*) malloc(N*sizeof(int)); - зачем эта строчка нужна?
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
17.12.2010, 16:38     Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным. #10
Цитата Сообщение от Naked Посмотреть сообщение
mas=(int*) malloc(N*sizeof(int)); - зачем эта строчка нужна?
Naked, выделение памаяти под массив типа int розмером N-елементов!!!
slice
32 / 75 / 4
Регистрация: 04.11.2010
Сообщений: 249
17.12.2010, 16:54     Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным. #11
просто отсортируй массив по убыванию
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2010, 19:25     Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным.
Еще ссылки по теме:

Разработать функцию, которая сортирует только положительные элементы массива на своих местах C++
Напишите перегруженную функцию power (), которая принимает два целочисленных параметра типа int и возвращает целочисленное значение типа int C++
C++ Создать функцию, которая будет выводить на экран все четные элементы массива

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

Или воспользуйтесь поиском по форуму:
Naked
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 18
17.12.2010, 19:25  [ТС]     Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным. #12
А без указателей "*" можно ее писать?
Yandex
Объявления
17.12.2010, 19:25     Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным.
Ответ Создать тему
Опции темы

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