Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
jon_illien
2 / 2 / 1
Регистрация: 14.08.2012
Сообщений: 78
#1

Заполнение главной диагонали матрицы максимальными элементами - C++

24.09.2012, 17:57. Просмотров 809. Ответов 5
Метки нет (Все метки)

спасибо, что откликнулись. нужно решить такую задачу:

Путем перестановки элементов добиться того, чтобы ее максимальный элемент находился в левом верхнем углу (0, 0), следующий по величине – в позиции (1, 1), следующий по величине – в позиции (2, 2) и т.д., заполнив таким образом всю главную диагональ.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
template <class TYPE> void Func(TYPE x[][N], int M)
{
    int max, imax, jmax;
 
    for(int k=0; k<M; k++)
    {
        imax = 0; jmax = 0;
 
        for(int i=0; i<M; i++)
        {
            for(int j=1; j<N; j++)
            {
                if(x[i][j] > x[imax][jmax] && (i != k && j != k))
                    x[imax][jmax] = x[i][j];
            }
        }
        swap(x[k][k], x[imax][jmax]);
    }
}
Добавлено через 1 час 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
    int max, imax, jmax;
 
    for(int k=0; k<N; k++)
    {
        imax = 0; jmax = 0;
 
        for(int i=0; i<N; i++)
        {
            for(int j=1; j<N; j++)
            {
                if(x[i][j] > x[imax][jmax] && (i != k && j != k))
                {
                    imax = i;
                    jmax = j;
                    max = x[i][j];
                }
            }
        }
        swap(x[k][k], x[imax][jmax]);
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2012, 17:57     Заполнение главной диагонали матрицы максимальными элементами
Посмотрите здесь:

Матрица. Поменять местами элементы главной диагонали максимальными элементами ряда. - C++
Матрица. Поменять местами элементы главной диагонали максимальными элементами ряда. Матр, заполняеться рандомом, заранее спасибо! ...

C++ Двумерные массивы(матрицы),работа с элементами главной диагонали - C++
Уважаемые коллеги, прошу помощи в решении парочки задачек,уж мозг в Си не &quot;варит&quot;,не клеится с его структурой... 1.В каждой строке...

Обменять элементы главной диагонали заданной квадратной матрицы, с элементами её первого столбца - C++
Составить программу обмена в матрице A элементов, находящихся на главной диагонали, с соответствующими элементами первого столбца.

Вывести вектор, образуемый элементами главной диагонали матрицы, и результат умножения указанного вектора на заданную матрицу - C++
Первую часть решила кое как, как записать числа из главной диагонали в отдельный массив и перемножить матрицу на матрицу? #include...

Обменять элементы массива на главной диагонали с элементами на побочной диагонали - C++
Всем привет. Дан двумерный массив размерностью 5х5, заполненный случайными числами из диапазона от 0 до 100. Обменять местами...

Заменить элементы главной диагонали элементами целого типа - C++
Найдите произведение всех положительных элементов матрицы размером 4x4, состоящей из элементов целого типа и замените им элементы главной...

Найти сумму каждой диагонали матрицы выше главной диагонали - C++
Дана матрица n*m, найти сумму каждой диагонали отдельно, выше главной диагонали. Не могу понять задачу помогите пожалуйста.

Разместить на главной диагонали матрицы суммы элементов, лежщих на диагоналях, перпендикулярных к главной - C++
Не могу решыть задучу.Выглядит примерно так.Создать квадратную матрицу целых чисел размером 9х9.Заполнить матрицу случайными числами....

Составить функцию нахождения максимального элемента Мх в диагонали матрицы, параллельной главной диагонали - C++
Пожалуйста помогите с решением задачи на С++ Составить функцию нахождения максимального элемента Мх в диагонали матрицы, ...

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

Найти максимальный элемент главной диагонали матрицы и множитель положительных элементов выбраной диагонали - C++
Узнать максимальные элемент на главной диагонали и множитель позитивных элементов выбраной диагонали. Рамер матрицы вводить с клавиатуры,...

Заменить каждый нулевой элемент главной диагонали матрицы максимальным элементом побочной диагонали - C++
дан массив А. Заменить каждый нулевой элемент главной диагонали максимальным элементом побочной диагонали! Подсчитать кол-во нулевых...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
24.09.2012, 21:40     Заполнение главной диагонали матрицы максимальными элементами #2
Цитата Сообщение от jon_illien Посмотреть сообщение
Путем перестановки элементов добиться того, чтобы ее максимальный элемент находился в левом верхнем углу (0, 0), следующий по величине – в позиции (1, 1), следующий по величине – в позиции (2, 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
#include <ctime>
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
 
template <class T>
void Func(T ** arr, int size);
 
int main()
{
    int i, j;//Счётчики
    int m      = 0;//Будет содержать размерность матрицы
    int ** arr = 0;//Указатель на матрицу
    cout<<"Enter size of matrix : ";cin>>m;
    srand(time(0));//Устанавливаем нач значение в генераторе случ чисел
    arr = new int *[m];//Выделили память под указатели на строки матрицы
    cout<<"\tInput array\n";
    for(i = 0; i < m; i++)
    {
        arr[i] = new int[m];////Выделили память под элементы i-й строки матрицы
        for(j = 0; j < m; j++)
            cout<<setw(3)<<(arr[i][j] = rand()%(m*m))<<" ";
        cout<<endl;
    }
    Func(arr, m);//Преобразуем массив
    cout<<"\tTransformed array\n";
    for(i = 0; i < m; i++)
    {
        for(j = 0; j < m; j++)
            cout<<setw(3)<<arr[i][j]<<" ";
        cout<<endl;
    }
    return 0;
}
 
template <class T>
void Func(T ** arr, int size)
{
    int i, j, k;
    int imax = 0;
    int jmax = 0;
    for(k = 0; k < size; k++)
    {
        imax = (jmax = k);
        for(i = 0; i < size; i++)
        for(j = 0; j < size; j++)
        {
            
            if(i == j && i <= k) 
                continue;//Не рассматриваем предыдущие элементы на главной диагонали
            else
            {
                if(arr[imax][jmax] < arr[i][j])
                {
                    imax = i;
                    jmax = j;
                }
            }
        }
        swap(arr[k][k], arr[imax][jmax]);
    }
}
Проверка http://codepad.org/YBHOFxtK
Миниатюры
Заполнение главной диагонали матрицы максимальными элементами  
-=ЮрА=-
24.09.2012, 21:42
  #3

Не по теме:

Цитата Сообщение от jon_illien Посмотреть сообщение
(i != k && j != k)
- да я тоже сначала такое условие хотел, но это лучше

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
if(i == j && i <= k)
* * * * * * * * continue;//Не рассматриваем предыдущие элементы на главной диагонали
* * * * * * else

jon_illien
2 / 2 / 1
Регистрация: 14.08.2012
Сообщений: 78
24.09.2012, 22:00  [ТС]     Заполнение главной диагонали матрицы максимальными элементами #4
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение

Не по теме:

- да я тоже сначала такое условие хотел, но это лучше

блин!) а, можно это адаптировать к моему коду, помоги plz)
-=ЮрА=-
Заблокирован
Автор FAQ
24.09.2012, 22:09     Заполнение главной диагонали матрицы максимальными элементами #5
Цитата Сообщение от jon_illien Посмотреть сообщение
блин!) а, можно это адаптировать к моему коду, помоги plz)
- так моя ж функция есть

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
template <class T>
void Func(T ** arr, int size)
- тот же template просто массив не статический

Цитата Сообщение от jon_illien Посмотреть сообщение
(TYPE x[][N]
а динамический. И зачем тебе M и N если главная диагональ есть лишь у квадратной матрицы, оттого у меня всего 1 размерность
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
int m * * *= 0;//Будет содержать размерность матрицы
- матрица то квадратная. Ну вставь моё условие уже накрайняк
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
if(i == j && i <= k)
* * * * * * * * continue;//Не рассматриваем предыдущие элементы на главной диагонали
* * * * * * else
Не вижу проблемм если честно. Пиши!
jon_illien
2 / 2 / 1
Регистрация: 14.08.2012
Сообщений: 78
24.09.2012, 22:59  [ТС]     Заполнение главной диагонали матрицы максимальными элементами #6
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- так моя ж функция есть

- тот же template просто массив не статический

а динамический. И зачем тебе M и N если главная диагональ есть лишь у квадратной матрицы, оттого у меня всего 1 размерность
- матрица то квадратная. Ну вставь моё условие уже накрайняк

Не вижу проблемм если честно. Пиши!
я сегодня какой-то слепой, огромное спасибо за помощь.
Yandex
Объявления
24.09.2012, 22:59     Заполнение главной диагонали матрицы максимальными элементами
Ответ Создать тему
Опции темы

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