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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2013, 18:10   #1
Anatoly_
Новичок
Джуниор
 
Регистрация: 12.12.2013
Сообщений: 3
По умолчанию Помогите с матрицей)

Вроде код составил, но не пойму, минимальный жлемент выше главной диагонали вроде правильно ищет, а максимальный ниже побочной нет. Прошу помочь=)
Задание:
"В матрице размером 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_ вне форума Ответить с цитированием
Старый 12.12.2013, 22:42   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
 
   for (int i=1; i<row; i++) 
        for (int j=column-1; j>row-i; j--)
            if (MAS[i][j]>max) max=MAS[i][j];
Так пойдет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.12.2013, 23:51   #3
Anatoly_
Новичок
Джуниор
 
Регистрация: 12.12.2013
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
 
   for (int i=1; i<row; i++) 
        for (int j=column-1; j>row-i; j--)
            if (MAS[i][j]>max) max=MAS[i][j];
Так пойдет?
Та вот все равно, через раз оно ниже побочной диагонали максимальный показывает, бывает выше ее показывает элемент...

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В матрице размером NxM найти максимальный среди элементов, лежащих ниже побочной диагонали, и минимальный - среди лежащих выше Anatoly_ Visual C++ 1 13.12.2013 09:54
помогите с матрицей DarthaBaudh Общие вопросы C/C++ 7 25.05.2009 16:52
Помогите с матрицей Panda Помощь студентам 1 06.07.2008 16:42
помогите с матрицей Panda Помощь студентам 1 01.07.2008 11:31
Помогите с матрицей Zolotce Помощь студентам 4 21.04.2008 14:15