С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
yura332
0 / 0 / 0
Регистрация: 21.09.2009
Сообщений: 25
#1

строки матрици - C++

28.09.2009, 15:18. Просмотров 421. Ответов 2
Метки нет (Все метки)

Упорядочить строки матрицы размером М*N за увеличением минимального елемента строки.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2009, 15:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос строки матрици (C++):

Матрици!!! Почему не вводится 5 строка матрици и невыводится сумма? - C++
Задана матрица квадратная А действительных чисел. Найти сумму элементов тех строк матрици, в которых элемент главной диагонали...

Матрици - C++
1. Дана матрица A. В соответствии с вариантом задания произвести вычисления с элементами данной матрицы. массив D; задание:Найти...

Матрици - C++
помогите пожалуйста написать программу: Дана вещественная матрица nxm. Получите новую матрицу путем деления всех элементов данной матрицы...

Матрици - C++
Записать на место отрицательных элементов матрицы нули, а на место положительных — единицы. Вывести на печать матрицу в общепринятом виде....

Матрици - C++
Кто знает как создать статический массив указателей на одномерные массивы.Или другими словами как создать матрицу но что б массив...

Матрици А и B - C++
Задайте матрици А і В размерностью (n x m), де n і m ≥ 6 (nm). Поменяйте местами первій и последний столбец матрици А. Увеличить...

2
R0mm
Псевдо программист
192 / 113 / 15
Регистрация: 19.09.2009
Сообщений: 303
28.09.2009, 15:47 #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
#include "stdafx.h"
#include "iostream"
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int **array;
    int n, m, i, j, k, tmp;
    cout << "Введите число строк:\n->"; cin >> n;
    cout << "Введите число столбцов:\n->"; cin >> m;
 
    array = new int*[n];
    for(i=0; i<n; i++) array[i] = new int[m];
 
    for(i=0; i<n; i++)
        for(j=0; j<m; j++){
            cout << "ARRAY[" << i << "," << j << "]: "; cin >> array[i][j];
        }
 
    for(i=0; i<n; i++){
        for(k = m-1; k>0; k--){
            for(j=0; j<k; j++){
                if (array[i][j]>array[i][j+1]){
                    tmp = array[i][j];
                    array[i][j] = array[i][j+1];
                    array[i][j+1] = tmp;
                }
            }
        }
    }
 
    for(i=0; i<n; i++){
        for(j=0; j<m; j++){
            cout << array[i][j] << " ";
        }
        cout << endl;
    }
 
    system("pause");
    return 0;
}
0
Rififi
2360 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
28.09.2009, 15:56 #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
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
101
102
#include <vector>
#include <functional>
#include <algorithm>
#include <iostream>
 
template <typename T, const size_t Rows>
struct max_row : public std::unary_function<
    const T (&)[Rows],
    std::vector<std::pair<typename std::allocator<T>::const_pointer, size_t> > >
{
    typedef std::unary_function<
        const T (&)[Rows],
        std::vector<std::pair<typename std::allocator<T>::const_pointer, size_t> > > base_type;
    typedef typename base_type::argument_type argument_type;
    typedef typename base_type::result_type result_type;
    
    max_row() : index_(0) {}
    void operator()(argument_type v)
    {       
        res_.push_back(std::make_pair(std::min_element(&v[0], &v[0]+Rows), index_++));
    }
 
    operator result_type() const { return res_; }
    
    result_type res_;
    size_t index_;
};
 
template <typename T>
struct comparer : public std::binary_function<
    typename T::value_type, typename T::value_type, bool>
{
    typedef std::binary_function<
        typename T::value_type, typename T::value_type, bool> base_type;
    typedef typename base_type::first_argument_type first_argument_type;
    typedef typename base_type::second_argument_type second_argument_type;
    typedef typename base_type::result_type result_type;
    
    result_type operator()(const first_argument_type& v1, const second_argument_type& v2) const
    {
        return *v1.first < *v2.first;
    }
};
 
template <typename T, const size_t Cols, const size_t Rows>
void sort(T (&arr)[Cols][Rows])
{
    typedef max_row<T, Rows> pred_type;
    typedef typename pred_type::result_type result_type;
    result_type v = std::for_each(&arr[0], &arr[0]+Cols, pred_type());
    
    std::sort(v.begin(), v.end(), comparer<result_type>());
    T tmp[Cols][Rows];
    for(size_t i=0; i<v.size(); i++)
        std::copy(arr[v[i].second], arr[v[i].second]+Rows, tmp[i]);
    std::copy(&tmp[0][0], &tmp[0][0]+Cols*Rows, &arr[0][0]);
}
 
template <
    typename _E, typename _Tr, template <typename, typename> class O,
    typename T, const size_t Rows>
struct outer : public std::unary_function<const T (&)[Rows], void>
{
    typedef std::unary_function<const T (&)[Rows], void> base_type;
    typedef typename base_type::argument_type argument_type;
    typedef typename base_type::result_type result_type;
    
    outer(O<_E,_Tr>& os) : os_(os) {}
    result_type operator()(argument_type v) const
    {
        const _E sep[] = { _E(' '), 0 };
        std::ostream_iterator<T,_E,_Tr> oi(os_, sep); 
        std::copy(&v[0], &v[0]+Rows, oi);
        os_ << std::endl;
    }
    O<_E,_Tr>& os_;
};
 
template <
    typename _E, typename _Tr, template <typename, typename> class O,
    typename T, const size_t Cols, const size_t Rows>
O<_E,_Tr>& operator << (O<_E,_Tr>& os, T (&arr)[Cols][Rows])
{
    std::for_each(&arr[0], &arr[0]+Cols, outer<_E, _Tr, O, T, Rows>(os));
    return (os);
}
 
int main()
{
    int arr[][4] = {
            1, 23, 6, 17,
            3, 25, 6, 44,
            12, 20, 32, 2 };
 
    std::cout << arr << std::endl;
    
    sort(arr);
    
    std::cout << arr;
 
    return 0;
}
Вывод:
1 23 6 17
3 25 6 44
12 20 32 2

1 23 6 17
12 20 32 2
3 25 6 44
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2009, 15:56
Привет! Вот еще темы с ответами:

матрици чисел - C++
есть 2 задачи каторые нужно решить Задана матрица чисел: а Вычислить сумму элементов, образующих букву :Z Задана...

Характеристика матрици! - C++
Дана прямоугольная матрица, найти количество столбцов которые не содержат ни одного нуля. Характеристика строки матрици является сумма ее...

Заполнение Матрици - C++
задача предстоит в том, чтоб заполнить матрицу таким образом, код надо на Си

Максимальный элемент матрици - C++
Нужно найти max элемент матрици Вот написал но не работает #include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; void main() { ...


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

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

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