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

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

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

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

12.06.2013, 22:02. Просмотров 402. Ответов 5
Метки нет (Все метки)

Помогите, будьте любезны.
Массив матрица - B(N,N)
Определить значение и индексы максимального элемента главной диагонали матрицы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2013, 22:02     Определить значение и индексы максимального элемента главной диагонали матрицы
Посмотрите здесь:

Найти координаты первого максимального элемента главной диагонали матрицы - C++
Дан двумерный массив размера N×N. Требуется найти координаты первого максимального элемента главной диагонали квадратного массива. ...

Найти значение и индексы максимального по абсолютной величине элемента матрицы - C++
Дана прямоугольная матрица b. Найти в ней значение и индексы максимального по абсолютной величине элемента. Если таких элементов несколько,...

Найти в каждом столбце матрицы индексы максимального элемента - C++
разработать алгоритм обработки двумерного массива размера nxm.Числа n и m,a также элементы массива взять из файла.Необходимо выбрать в...

Создать функцию, возвращающую индексы максимального элемента матрицы - C++
создать функцию, возвращающую индексы максимального элемента матрицы. продемонстрировать работу данной функции для матриц А(2;4), В(2;4),...

Вывести индексы максимального элемента (матрицы, отрицательные числа) - C++
Привет всем, помогите пожалуйста подготовиться к экзамену по информитикы)) 1. Базы данных и СУБД. Понятие реляционной базы данных. ...

Рассчитывается произведение минимального и максимального элемента ниже главной диагонали массовых - C++
Даны 2-мерных массовых X и Y . Рассчитывается произведение минимального и максимального элемента ниже главной диагонали массовых...

Массив: Найти наибольший элемент главной диагонали и определить его индексы - C++
Дан двумерный массив размером n*n, заполненный случайными числами. Найти наибольший элемент главной диагонали и определить его индексы....

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

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

Найти индекс минимального элемента главной диагонали матрицы - C++
Найти индекс минимального элемента главной диагонали матрицы Без понятий как решить


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nikolai699
16 / 16 / 3
Регистрация: 15.03.2012
Сообщений: 105
12.06.2013, 22:30     Определить значение и индексы максимального элемента главной диагонали матрицы #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
#include<iostream>
#include<ctime>
 
using namespace std;
 
int main(){
    srand(time(NULL));
    int **arr, N, max = 0, indexstr, indexstolb;
    cout << "enter N : ";
    cin >> N;
    /*cout << "enter M : ";
    cin >> M;*/
    arr = new int *[N];
    for(int i = 0; i < N; i++)
        arr[i] = new int [N];
    for(int i = 0; i < N; i++)
        for(int j = 0; j < N; j++)
            arr[i][j] = rand() % 5;
    cout << "your arr : " << endl;
    for(int i = 0; i < N; i++){
        for(int j = 0; j < N; j++)
            cout << arr[i][j] << "  ";
        cout << endl;
    }
 
    for(int i = 0; i < N; i++)
        for(int j = 0; j < N; j++)
        {
            if(i == j)
            {
                if(arr[i][j] > max){
                    max = arr[i][j];
                    indexstr = i;
                    indexstolb = j;
                }
            }
        }
        cout << "MAX = " << max << endl;
        cout << "Stroka - " << indexstr <<  endl;
        cout << "Stoldec - " << indexstolb << endl;
}
Lvaruky
8 / 8 / 0
Регистрация: 10.05.2013
Сообщений: 26
12.06.2013, 22:37     Определить значение и индексы максимального элемента главной диагонали матрицы #3
Nikolai699, главная диагональ имеет индексы [i][i], зачем плодить переменные и такое сложное условие?

Цитата Сообщение от Nikolai699 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
for(int i = 0; i < N; i++)
        for(int j = 0; j < N; j++)
        {
            if(i == j)
            {
                if(arr[i][j] > max){
                    max = arr[i][j];
                    indexstr = i;
                    indexstolb = j;
                }
            }
        }
можно ведь все и в одном цикле организовать:
C++
1
2
3
4
5
6
7
for (int i = 0; i < N; i++) {
        if(*(*(mas+i)+i)>max) {
            max=*(*(mas+i)+i);
            res=i;
        }
    }
    cout<<max<<"["<<res<<"]["<<res<<"]";
Также теоретически максимум может быть меньше нуля, поэтому лучше инициализировать max значанием первого элемента
Nikolai699
16 / 16 / 3
Регистрация: 15.03.2012
Сообщений: 105
12.06.2013, 22:54     Определить значение и индексы максимального элемента главной диагонали матрицы #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Lvaruky, ну да можно было чуть чуть попроще сделать

Добавлено через 14 минут
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
#include<iostream>
#include<ctime>
 
using namespace std;
 
int main(){
    srand(time(NULL));
    int **arr, N, max, index;
    cout << "enter N : ";
    cin >> N;
    arr = new int *[N];
    for(int i = 0; i < N; i++)
        arr[i] = new int [N];
    for(int i = 0; i < N; i++)
        for(int j = 0; j < N; j++)
            arr[i][j] = rand() % 5;
    max = arr[1][1];
    cout << "your arr : " << endl;
    for(int i = 0; i < N; i++){
        for(int j = 0; j < N; j++)
            cout << arr[i][j] << "  ";
        cout << endl;
    }
    for(int i = 0; i < N; i++)
    {
        if(arr[i][i] > max)
        {
            max = arr[i][i];
            index = i;
        }
    }
    cout << "MAX = " << max << endl;
    cout << "Stroka - " << index <<  endl;
    cout << "Stoldec - " << index << endl;
}

подправил, учитывая замечания выше))
Lvaruky
8 / 8 / 0
Регистрация: 10.05.2013
Сообщений: 26
12.06.2013, 23:53     Определить значение и индексы максимального элемента главной диагонали матрицы #5
Nikolai699, не подумайте, что я придираюсь, но если
Цитата Сообщение от Nikolai699 Посмотреть сообщение
C++
1
max = arr[1][1];
элемент[1][1] и будет максимумом, то переменная index даже не инициализируется, т.к. программа не зайдет в этот кусок кода:

Цитата Сообщение от Nikolai699 Посмотреть сообщение
C++
1
2
3
4
5
if(arr[i][i] > max)
     {
       max = arr[i][i];
       index = i;
     }
Nikolai699
16 / 16 / 3
Регистрация: 15.03.2012
Сообщений: 105
13.06.2013, 08:40     Определить значение и индексы максимального элемента главной диагонали матрицы #6
Lvaruky, да все замечания по делу у вас)
Yandex
Объявления
13.06.2013, 08:40     Определить значение и индексы максимального элемента главной диагонали матрицы
Ответ Создать тему
Опции темы

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