Консультация № 177924
18.04.2010, 23:46
0.00 руб.
0 2 1
Добрый вечер, уважаемые эксперты. Прошу помочь с написанием следующей программына языке программирования С++: Найти максимальный среди всех элементов тех строк заданной матрицы, которые упорядочены (либо по возрастанию, либо по убыванию), матрица должна задаваться с клавиатуры. Надеюсь на вашу помощь, заранее спасибо.

Обсуждение

давно
Академик
320937
2216
20.04.2010, 21:58
общий
это ответ
Здравствуйте, Селеверстов Антон Юрьевич. Текст программы в приложении. CodeBlocks/G++.


Приложение:
// Найти максимальный среди всех элементов тех строк заданной матрицы,
// которые упорядочены (либо по возрастанию, либо по убыванию),
// матрица должна задаваться с клавиатуры.
#include <iostream>
using namespace std;

int main()
{
const int rows=5; // строки
const int cols=4; // столбцы
int max; // максимальный элемент

int v[rows][cols]; // матрица

// ввод
for (int i=0; i<rows; ++i)
for (int j=0; j<cols; ++j)
cin >> v[i][j];

max=v[0][0]; // пусть элемент v[0,0] - максимальный
for (int i=0; i<rows; ++i)
{
bool up = true; // строка упорядочена по возрастанию
bool down = true; // строка упорядочена по возрастанию
int j=1;
while ((up || down) && j<cols)
{
if (down && v[i][j]>=v[i][j-1])
down = false;
if (up && v[i][j]<=v[i][j-1])
up = false;
++j;
}
if (up && v[i][cols-1]>max) // если по возрастанию,
max = v[i][cols-1]; // сравниваем последний
else if (down && v[i][0]>max)
max = v[i][0]; // иначе первый в строке
}
cout << max << endl;
system("pause");
return 0;
}
5
Большое спасибо за программу и подробные комментарии.
давно
Академик
320937
2216
21.04.2010, 07:18
общий
Селеверстов Антон Юрьевич:
Удачи!
Форма ответа