Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
AforeveR
0 / 0 / 3
Регистрация: 12.12.2011
Сообщений: 29
#1

Сформировать из элементов матрицы меньше нуля одномерный массив, отсортировать его по убыванию методом выбора - C++

16.02.2012, 06:05. Просмотров 735. Ответов 1
Метки нет (Все метки)

Дан двумерный массив N X M. Сформировать из элементов меньше нуля одномерный массив отсортировать его по убыванию методом выбора
http://www.cyberforum.ru/cpp-beginners/thread528835.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2012, 06:05
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сформировать из элементов матрицы меньше нуля одномерный массив, отсортировать его по убыванию методом выбора (C++):

Отсортировать диагонали матрицы, параллельные главной, по убыванию элементов методом выбора
Дана матрица размерностью NхN, содержащая целые числа. Отсортировать:...

Вычислить сумму элементов, у которых значения равно индексу. Отсортировать массив методом выбора по убыванию
Дан одномерный массив целых чисел А. Вычислить сумму элементов, у которых...

Дан массив из N целых чисел. Отсортировать его по убыванию элементов методом пузырька
Дан массив из N целых чисел. Отсортировать его по убыванию элементов методом...

Отсортировать по убыванию методом выбора указанные элементы матрицы
Имеется матрица 2N*2N Отсортировать по убыванию методом выбора минимума. ...

Дан одномерный массив А, состоящий из N элементов. Отсортировать все его элементы улучшенным методом пузырька
Дан одномерный массив А, состоящий из N элементов. Отсортировать все его...

1
Roof
154 / 154 / 44
Регистрация: 03.11.2010
Сообщений: 393
16.02.2012, 14:38 #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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
 
#define ROWS 6
#define COLS 7
 
// заполнение двухмерного массива случайными целочисленными значениями
void fill_array_2d( double[ ], const size_t, const size_t );
// вывод двухмерного массива на экран
void print_array_2d( const double[ ], const size_t, const size_t );
// вывод одномерного массива на экран
void print_array( double*, const size_t );
// формирование одномерного массива из отрицательных элементов двухмерного
double* fill_array_negative( const double[ ], const size_t, const size_t );
// сортировка одномерного массива методом выбора
void select_sort_array( double*, size_t );
 
int main( void ) {
    srand( time( NULL ) );
 
    double array_source[ ROWS ][ COLS ];
    fill_array_2d( *array_source, ROWS, COLS );
    puts( "Исходный двухмерный массив:" );
    print_array_2d( *array_source, ROWS, COLS );
    puts( "" );
 
    double* array_negative = fill_array_negative( *array_source, ROWS, COLS );
    puts( "Одномерный массив из отрицательных элементов исходного двухмерного массива:" );
    print_array( array_negative, array_negative[ -1 ] );
    puts( "" );
 
    select_sort_array( array_negative, array_negative[ -1 ] );
    puts( "Отсортированный по убыванию одномерный массив" );
    print_array( array_negative, array_negative[ -1 ] );
 
    free( --array_negative );
 
    return EXIT_SUCCESS;
}
 
void fill_array_2d( double array[ ], const size_t dimm1, const size_t dimm2 ) {
    size_t i, j;
    for ( i = 0; i < dimm1; ++i )
        for ( j = 0; j < dimm2; ++j )
            array[ i * dimm2 + j ] = ( rand() % 101 ) / 10.0 - 5; // [-5.0..5.0];
}
 
void print_array_2d( const double array[ ], const size_t dimm1, const size_t dimm2 ) {
    size_t i, j;
    for ( i = 0; i < dimm1; ++i ) {
        for ( j = 0; j < dimm2; ++j )
            printf( "%4.2lf  ", array[ i * dimm2 + j ] );
 
        puts( "" );
    }
}
 
void print_array( double* array, const size_t dimm ) {
    size_t i;
    for ( i = 0; i < dimm; ++i )
        printf( "%4.2lf  ", array[ i ] );
 
    puts( "" );
}
 
double* fill_array_negative( const double array_src[ ], const size_t dimm1, const size_t dimm2 ) {
    size_t i, j, index_temp = 1;
    double* array_temp = 0;
    for ( i = 0; i < dimm1; ++i )
        for ( j = 0; j < dimm2; ++j )
            if ( array_src[ i * dimm2 + j ] < 0 ) {
                array_temp = realloc( array_temp, ( index_temp + 1 ) * sizeof(double) );
                array_temp[ index_temp ] = array_src[ i * dimm2 + j ];
                ++index_temp;
            }
 
    array_temp[ 0 ] = index_temp - 1; // тут сохраним длину массива
    return ++array_temp;
}
 
void select_sort_array( double* array, size_t dimm ) {
    size_t i, j, k;
    double temp;
 
    for ( i = 0; i < dimm; ++i ) { // i - номер текущего шага
        k = i;
        temp = array[ i ];
 
        for ( j = i + 1; j < dimm; ++j ) // цикл выбора наименьшего элемента
            if ( array[ j ] > temp ) {
                k = j;
                temp = array[ j ]; // k - индекс наименьшего элемента
            }
 
        array[ k ] = array[ i ];
        array[ i ] = temp; // меняем местами наименьший с array[i]
    }
}
Консоль
Исходный двухмерный массив:
0.60 4.20 -0.90 1.40 -4.40 2.20 4.30
1.70 -3.30 -1.30 4.00 3.30 3.60 -0.80
-5.00 -0.60 -3.80 -2.60 0.70 1.30 -1.70
-3.00 3.50 -4.60 0.00 2.40 -3.20 -4.80
2.90 -4.70 -3.60 -5.00 4.50 0.50 -1.90
1.70 4.30 -2.70 -1.70 -4.10 1.10 -2.70

Одномерный массив из отрицательных элементов исходного двухмерного массива:
-0.90 -4.40 -3.30 -1.30 -0.80 -5.00 -0.60 -3.80 -2.60 -1.70 -3.00 -4.60 -3.20 -4.80 -4.70 -3.60 -5.00 -1.90 -2.70 -1.70 -4.10 -2.70

Отсортированный по убыванию одномерный массив
-0.60 -0.80 -0.90 -1.30 -1.70 -1.70 -1.90 -2.60 -2.70 -2.70 -3.00 -3.20 -3.30 -3.60 -3.80 -4.10 -4.40 -4.60 -4.70 -4.80 -5.00 -5.00
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2012, 14:38
Привет! Вот еще темы с решениями:

Отсортировать одномерный массив действительных чисел методом пузырька (по убыванию)
Отсортировать одномерный массив действительных чисел методом пузырька (по...

Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию
создать одномерный массив, заполнить его случайными значениями, отсортировать...

Массивы: выбрать элементы меньше нуля и отсортировать их по убыванию
В массиве с 5 чисел найти элементы меньше нуля и отсортировать их по убыванию

Cгенерировать одномерный массив из 10 чисел,отсортировать его по возрастанию или убыванию
Суть собственно в чем, я полный чайник и задача мне нужна написанная самым...


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

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

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