Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 17.12.2015
Сообщений: 43
1

Перенести в начало массива все положительные элементы, а в конец массива - все отрицательные

17.12.2015, 21:33. Показов 1794. Ответов 1
Метки нет (Все метки)

Помогите, пожалуйста, написать программу на языке Си:
Дан одномерный массив А, состоящий из N элементов. Перенести в начало массива все положительные элементы, а в конец массива - все отрицательные.
Заранее большое спасибо!)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2015, 21:33
Ответы с готовыми решениями:

Дан одномерный массив А. Перенести в начало массива все четные элементы, а в конец - все нечетные
Помогите пожалуйста написать программу на языке "Си": Дан одномерный массив А состоящий из N...

Все положительные элементы массива поместить в начало массива B, а отрицательные — в начало C
помогите не как не могу понять как записать код для задачи (Дан числовой массив A размера N. Все...

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

Все четные положительные элементы массива А перенести в начало, а все остальные в конец
дан одномерный целочисленный массив А состоящий из N элементов, N-заданное натуральное число. Все...

__________________
1
823 / 626 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
18.12.2015, 11:01 2
Лучший ответ Сообщение было отмечено Kristina18 как решение

Решение

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 <stdio.h>
 
int* array_part(int* fa, int* la, int (*cmp)(int)){
    int t, *p = fa;
    while((fa != la) && (*cmp)(*fa))
        ++fa;
    for(p = fa; fa != la; ++fa){
        if((*cmp)(*fa)){
            t    = *fa;
            *fa  = *p;
            *p++ = t;
        }
    }
    return p;
}
 
static int compare(int n) { return (n > 0); }
 
int main(void){
    int i;
    int a[] = { -1, -2, -3, 1, -4, 2, 3, -5, 4, 5, -6, 6, 7, -7, 8, -9, 9 };    
    int n   = sizeof(a)/sizeof(a[0]);
 
    array_part(a, a + n, compare);
    for(i = 0; i < n; ++i)
        printf("%d ", a[i]);
    return 0;
}
Пример работы кода
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2015, 11:01

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Все четные положительные элементы массива А перенести в начало, а все остальные в конец
дан одномерный целочисленный массив А состоящий из N элементов, N-заданное натуральное число. Все...

Все отрицательные элементы массива перенести в начало, а все остальные - в конец
Задать массив случайных чисел из диапазона . Воспользовавшись вспомогательным массивом, все...

Все отрицательные элементы массива перенести в начало, а все остальные — в конец
Преобразовать массив Х по следующему правилу: все отрицательные элементы массива перенести в...

Все отрицательные элементы массива перенести в начало, а все остальные - в конец
помогите пожалуйста))) преобразовать массив по следующему правилу (воспользовавшись массивом у как...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.