Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2013, 18:08   #1
Anatoly_
Новичок
Джуниор
 
Регистрация: 12.12.2013
Сообщений: 3
По умолчанию В матрице размером NxM найти максимальный среди элементов, лежащих ниже побочной диагонали, и минимальный - среди лежащих выше

Вроде код составил, но не пойму, минимальный жлемент выше главной диагонали вроде правильно ищет, а максимальный ниже побочной нет. Прошу помочь=)
Задание:
"В матрице размером NxM найти максимальный среди элементов, лежащих ниже побочной диагонали, и минимальный среди элементов, лежащих выше главной диагонали."
Мой код:
Код:
#include <iostream>
#include <iomanip>
#include <ctime>
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int row,column;
std::cout << "Введите кол-во строк в матрице: ";
std::cin >> row;
std::cout << "Введите кол-во столбцов в матрице: ";
std::cin >> column;
    int **MAS = new int *[row]; 
    for (int i = 0; i < row; i++)
    MAS[i] = new int [column];
srand(time(NULL));
std::cout << "Матрица: " << std::endl;
    for (int i=0; i<row; i++) 
    {                          
        for (int j=0; j<column; j++)
        {
          MAS[i][j]=10-rand()%21; 
            std::cout << std::setw(3) << MAS[i][j];
        }
        std::cout << std::endl;
    }
 
    int min=MAS[0][1]; 
    for (int i=0; i<row; i++) 
        for (int j=0; j<column; j++)
            if ((j>i) && (MAS[i][j]<min)) min=MAS[i][j];
	int max=MAS[0][1]; 
    for (int i=0; i<row; i++) 
        for (int j=0; j<column; j++)
            if ((j>i) && (MAS[i][j]>max)) max=MAS[i][j];

 
std::cout << "Наименьший элемент, лежащий выше главной диагонали: " << min<<std::endl;
std::cout << " Mаксимальный среди элементов, лежащих ниже побочной " << max<<std::endl;
std::cout << std::endl;
    for (int i = 0; i < row; i++)
    delete []MAS[i];
    delete []MAS;
    system("pause");
    return 0;
}
Anatoly_ вне форума Ответить с цитированием
Старый 13.12.2013, 09:54   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

давайте начнём с того, что понятие главной диагонали определено только (исключительно) для КВАДРАТНЫХ матриц (т.е. матрица должна быть размером NxN или MXM или, в крайнем случае NxM, но при этом N и M должны быть обязательно равны).
Это раз.

во-вторых, начальные значения нужно присваивать max = MAS[1][0]

в третьих,
задумайтесь, что означает условие (j>i):
Цитата:
Код:
 
    int min=MAS[0][1]; 
    for (int i=0; i<row; i++) 
        for (int j=0; j<column; j++)
            if ((j>i) && (MAS[i][j]<min)) min=MAS[i][j];

    int max=MAS[0][1]; 
    for (int i=0; i<row; i++) 
        for (int j=0; j<column; j++)
            if ((j>i) && (MAS[i][j]>max)) max=MAS[i][j];

Последний раз редактировалось Serge_Bliznykov; 13.12.2013 в 09:56.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти наибольший элемент среди стоящих выше главной и побочной диагоналей Иляна Помощь студентам 0 29.01.2013 21:43
массиве X(N) найти максимальный элемент среди положительных элементов массива и минимальный среди отрицательных элементов. sorok Общие вопросы C/C++ 2 20.03.2012 12:18
Вычислить количество элементов квадратной матрицы, лежащих ниже положительной диагонали. netiv Паскаль, Turbo Pascal, PascalABC.NET 1 28.10.2011 17:00
[Pascal] найти сумму элементов лежащих ниже побочной диагонали Рамик Помощь студентам 12 28.03.2011 22:53
Вычисление сумм элементов матрицы А размера n x n, лежащих выше, ниже и на главной диагонали Tomoa Microsoft Office Word 8 04.04.2010 20:18