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

Упорядочить массив: отрицательные элементы в начале массива, потом нулевые, а в конце положительные

03.06.2016, 15:03. Показов 3365. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задан массив, содержащий N элементов. Требуется переприсвоить его элементы так, чтобы отрицательные элементы оказались в начале массива, нулевые следующими, а в конце положительные. При этом в каждой из групп должен сохраниться исходный порядок элементов.
Помогите пожалуйста :C
0
03.06.2016, 15:03
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.06.2016, 15:03
Ответы с готовыми решениями:

Преобразовать матрицу так, чтобы в начале каждой строки были положительные элементы, а в конце отрицательные
Рассчитал матрицу по исходной формуле. Нужно преобразовать матрицу так, чтобы в начале каждой строки должны быть собраны её неотрицательные...

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

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

2
738 / 543 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
03.06.2016, 17:55 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

damax,
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int *A, *B;
    int i, j, q = 0, r = 0, N;
    puts("Input array size:");
    scanf("%d", &N);
    A = malloc(N * sizeof(A));
    B = malloc(N * sizeof(B));
    srand(time(0));
    for(i = 0; i < N; ++i)
        printf("%d ", A[i] = rand() % 19 - 7);
    for(i = 0, j = N - 1; i < N; ++i, --j){
        if(A[j] > 0){
            B[N - 1 - q] = A[j];
            ++q;
        }
        if(A[i] < 0){
            B[r] = A[i];
            ++r;
        }
    }
    for(i = r; i < N - q; ++i)
        B[i] = 0;
    printf("\n");
    for(i = 0; i < N; ++i)
        printf("%d ", B[i]);
    free(A);
    free(B);
    return 0;
}
1
 Аватар для Геомеханик
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
04.06.2016, 09:51 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
28
29
30
31
32
#include <stdio.h>
 
int* array_part(int* f, int* l, int (*pcmp)(int)){
    int* p, *i, *j, t;
    for(p = i = f; i != l; ++i){
        if((*pcmp)(*i)){
            for(j = i; j > p; --j){
                t  = *j;
                *j = *(j - 1);
                *(j - 1) = t;
            }
            ++p;
        }
    }
    return p;
}
 
int negative(int n) { return (n < 0);  }
int zero(int n)     { return (n == 0); }
 
int main(void){
    int* p;
    int  a[] = { 0, 1, -1, 2, -2, 3, -3, 0, -4, -5, 4, 5, 6, -6, 7, 0, -7 }; 
    int  n   = sizeof(a)/sizeof(a[0]);
 
    p = array_part(a, a + n, &negative);
    p = array_part(p, a + n, &zero);
 
    for(p = &a[0]; p != &a[n]; ++p)
        printf("%d ", *p);
    return 0;
}
1
04.06.2016, 09:51
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.06.2016, 09:51
Помогаю со студенческими работами здесь

Положительные элементы массива заменить на 1, отрицательные на -1, а нулевые оставить без изменения
проблема состоит в том, что последний принтф выводит странный значения ~-900000000 хотя должен выводить сигнатуру, пожалуйста помогите, вот...

Переставить элементы массива: сначала положительные числа, а потом отрицательные (порядок должен сохраняться)
Переставить элементы одномерного массива А {20} так чтобы сначала были все положительные числа, а потом отрецательные, порядок должен...

Изменить массив, чтобы сначала располагались все отрицательные элементы, затем положительные, а потом нули
Нужно решение задачи по СИ: Изменить порядок следования элементов в массиве так, чтобы сначала располагались все отрицательные элементы, за...

Упорядочить массив так, чтобы сначала иши упорядоченные положительные члены а потом упорядоченные отрицательные члены
упорядочить одномерный массив таким образом,чтобы сначала ии упорядоченные положительные члены а потом упорядоченные по возрастанию...

Создать массив В, в который переписать по порядку сначала все положительные, а потом все отрицательные элементы
Добрый вечер! есть 2 несложные задачи, помогите, пожалуйста решить: Вот одна из них Задан массив А. Создать массив В, в который...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Комментарии в JSON
hw_wired 10.02.2025
JSON - текстовый формат обмена данными, построенный на основе синтаксиса JavaScript. Этот формат отличается простотой, читаемостью и широкой поддержкой во всех современных языках программирования. . . .
Перезаписываем локальные файлы с помощью git pull
hw_wired 10.02.2025
Git pull - незаменимая команда для синхронизации локального репозитория с удаленным. При работе над проектом в команде разработчиков часто возникает необходимость получить актуальные изменения,. . .
Оператор --> в C++
hw_wired 10.02.2025
Оператор --> (называемый "spaceship operator" или оператор космического корабля) - важное нововведение в стандарте C++20, упрощающее реализацию операций сравнения в пользовательских типах данных. . . .
Отмена git add до коммита
hw_wired 10.02.2025
Git предлагает несколько методов для отмены индексации файлов перед созданием коммита. Разработчики часто сталкиваются с ситуацией, когда нужно убрать файлы из индекса, не теряя внесенные изменения в. . .
Типы MIME в JSON: что и когда использовать в REST API
hw_wired 10.02.2025
MIME-типы играют ключевую роль в современных веб-приложениях, особенно в контексте REST API и микросервисной архитектуры. Они определяют формат передаваемых данных между клиентом и сервером, что. . .
Переименование локальной ветки Git
hw_wired 10.02.2025
Git предлагает систему управления версиями, где ветки играют ключевую роль в организации разработки. Ветки позволяют изолировать изменения кода, экспериментировать с новыми функциями и поддерживать. . .
Удаление элемента из массива в JavaScript
bytestream 10.02.2025
В JavaScript массивы - это упорядоченные наборы данных, которые часто требуют модификации, включая удаление элементов. Самый распространенный метод для этой задачи - splice(). Этот метод позволяет не. . .
Что значит yield в Python
bytestream 10.02.2025
Ключевое слово yield в Python создает генераторную функцию - особый тип функции, которая возвращает итератор. В отличие от обычных функций, использующих return для возврата значения и завершения. . .
Чем отличаются git pull и git fetch
bytestream 10.02.2025
Git предоставляет множество команд для работы с удаленными репозиториями, среди которых особое место занимают git fetch и git pull. Эти команды помогают синхронизировать локальный репозиторий с. . .
Как удалить ветку Git в локальном и удаленном репозитории
bytestream 10.02.2025
Git предлагает развитую систему ветвления, позволяющую разработчикам создавать параллельные версии кода для различных задач. Ветка в Git - это легковесный указатель на определенный коммит, который. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru