Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 8
1

Отсортировать массив прямоугольной матрицы по строкам

08.05.2014, 18:32. Показов 1040. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Помогите с программой.Задание нужно отсортировать массив прямоугольной матрицы по строкам. Сортировка: в начале все отрицательные элементы первым самый большой по модулю, в конце второй по модулю и тд то есть если было -2 -8 -4 -1 отсортирует -8 -2 -1 -4, потом все нули, далее все положительные элементы первым самый маленький по модулю, в конце второй по малости и тд, 2 8 4 1 отсортирует 1 4 8 2. Заранее благодарен.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2014, 18:32
Ответы с готовыми решениями:

Отсортировать массив прямоугольной матрицы по строкам методом пузырька
Доброго времени суток. Помогите с программой.Задание нужно отсортировать массив прямоугольной...

Отсортировать двумерный массив по возрастанию по строкам
нужно отсортировать двумерный массив по возрастанию по строкам где ошибка for(i=0;i<3;i++) {...

Из целочисленной прямоугольной матрицы сформировать массив
Здравствуйте! Помогите, пожалуйста, разобраться с заданием. Вот задание: "Из целочисленной...

Переписать в одномерный массив С отрицательные элементы матрицы по строкам
1) Записать в дополнительную строку матрицы К(3,4) средние арифметические элементы каждого столбца....

1
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.05.2014, 21:21 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <stdlib.h>
#include <math.h>
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <memory.h>
#include <stdio.h>
 
#define EPS 1.0e-6
 
int dblCmp(const void* d1, const void* d2) {
    if (abs(*(double*)d1 - *(double*)d2) < EPS) return 0;
    else if (*(double*)d1 > *(double*)d2) return 1;
    else return -1;
}
 
void replace(double* mem, size_t num) {
    size_t memSize = num*sizeof(double);
    double* buf = (double*)malloc(memSize);
    memcpy(buf, mem, memSize);
    for (size_t i=0; i < num; ++i) {
        if (i%2 == 0) mem[i/2] = buf[i];
        else mem[num-1-i/2] = buf[i];
    }
    free(buf);
}
 
void lineSort(double* arr, size_t num) {
    qsort(arr, num, sizeof(double), dblCmp);
    size_t neg=0, pos=0;
 
    for (size_t i=0; arr[i] < -EPS && i < num; ++i, ++neg);
    if (neg) replace(arr, neg);
 
    for (size_t i=num-1; arr[i] > EPS && i >= 0; --i, ++pos);
    if (pos) replace(arr+num-pos, pos);
}
 
void printMatrix(const double* matr, size_t n, size_t m) {
    for (size_t i=0; i < n; ++i) {
        for (size_t j=0; j < m; ++j) {
            printf("%.3lf ", *(matr+i*m+j));
        }
        printf("\n");
    }
}
 
int main() {
    double matrix[2][10] = {
        {1.0, -1.0, 0.5, 0.7, 0.0, 0.0, 10.0, -5.0, 3.0, -3.5},
        {-2.0, -8.0, -4.0, -1.0, 2.0, 8.0, 4.0, 1.0, 0.0, 0.0},
    };
    printMatrix(&matrix[0][0], 2, 10);
    for (size_t i=0; i < 2; ++i) {
        lineSort(matrix[i], 10);
    }
    printf("\n");
    printMatrix(&matrix[0][0], 2, 10);
}
0
08.05.2014, 21:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2014, 21:21
Помогаю со студенческими работами здесь

Сформировать одномерный массив из индексов положительных элементов, прочитанных по строкам всей матрицы
Дана матрица А размером m*n. Сформировать одномерный массив из индексов «+»-ых элементов,...

Определение суммы минимальных элементов по всем строкам прямоугольной матрицы
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt;...

Массив: Отсортировать полученный массив 3 способами: по строкам, по столбцам( возр.), 3) и весь массив
Помогите, пожалуйста ,решить задачу. Очень нужно. Задан массив (4*6). Элементы задаются по...

Отсортировать двумерный массив по строкам
Как записать этот код для двух мерного массива A , что бы сортировало отдельно каждую строку ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru