Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Bibus
0 / 0 / 0
Регистрация: 26.11.2017
Сообщений: 17
1

Найти наибольший элемент в заштрихованной области матрицы

03.03.2018, 08:53. Просмотров 370. Ответов 4
Метки нет (Все метки)

Дана квадратная матрица поряда n. Найти наибольший элемент в заштрихованной области
0
Миниатюры
Найти наибольший элемент в заштрихованной области матрицы  
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2018, 08:53
Ответы с готовыми решениями:

Найти наименьший и наибольший элемент заштрихованной области заданной квадратной матрицы (составить блоксхему)
Дано натурально число n. Сформировать произвольную матрицу размерностью n*n. Даны натуральные числа...

Найти наибольший элемент в заштрихованной части матрицы
#include <iostream> using namespace std; const int n= 5; void main () { int a = {18, -45, 70,...

Найти минимальный элемент в заштрихованной области матрицы
Преподаватель дала задание: Возможно, я что-то не пойму, но где заштрихованная область матрицы?...

Найти наибольший и наименьший элемент заштрихованной части матрицы
Дано натуральное число n. Сформировать произвольную матрицу размерностью n×n. Найти наибольший и...

Найти наибольший и наименьший элемент заштрихованной части матрицы
Помогите, пожалуйста. Если можно, с комментариями. Дано натуральное число n. Сформировать...

4
Bibus
0 / 0 / 0
Регистрация: 26.11.2017
Сообщений: 17
16.03.2018, 14:48  [ТС] 2
Пожалуйста, помогите решить
0
Yetty
2812 / 1964 / 1285
Регистрация: 18.12.2017
Сообщений: 6,318
16.03.2018, 18:53 3
Bibus, сделал для матриц с нечётным n. (на рисунке на мой взгляд именно такая изображена). элементы диагоналей входят в заштрихованную область. строки со значком // для проверки - показывают элементы для которых считается max1 (верхний треугольник) и max 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
#include <iostream>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    size_t n;
    cout <<"Enter n: "; cin >>n;
    
      double **a = new double*[n], max1=0, max2=0, MAX;
    for (size_t i = 0; i < n; i++)
         a[i]=new double[n];
    
    for (size_t i = 0; i < n; i++)
    {
    for (size_t j = 0; j < n; j++)
    {
      a[i][j]=rand()%9+ 1;
      cout <<a[i][j]<<" ";
    }
        cout <<endl;
    }
    cout <<endl;
    
        for (size_t i=0;i<=n/2;i++){
        for(size_t j=i;j<n-i;j++){
//             cout <<a[i][j]<<" ";
             if ((i == 0 && j==0) || a[i][j] >= max1) max1=a[i][j];
        }
    }
//    cout <<"max1="<<max1<<"\n";
    
         for (size_t i=n-1;i>n/2;i--){             
        for(size_t j=n-i-1;j<i+1;j++){
//             cout <<a[i][j]<<" ";
             if ((i == n-1 && j==0) || a[i][j] >= max2) max2=a[i][j];
        }
    }
//  cout <<"max2="<<max2<<"\n";
    
    if (max1>=max2) MAX=max1;
    else MAX=max2;
    cout <<"MAX="<<MAX<<"\n";
    delete[]a;
 
system("pause");
return 0;
}
1
Bibus
0 / 0 / 0
Регистрация: 26.11.2017
Сообщений: 17
16.03.2018, 20:24  [ТС] 4
Огромное спасибо!! Но модете обьяснить, если матрица с четным n то в коде что изменится?
0
Yetty
2812 / 1964 / 1285
Регистрация: 18.12.2017
Сообщений: 6,318
16.03.2018, 20:49 5
так вроде для всех считает:
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
#include <iostream>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    size_t n, k;
    cout <<"Enter n: "; cin >>n;
    
      double **a = new double*[n], max1=0, max2=0, MAX;
    for (size_t i = 0; i < n; i++)
         a[i]=new double[n];
    
    for (size_t i = 0; i < n; i++)
    {
    for (size_t j = 0; j < n; j++)
    {
      a[i][j]=rand()%9+ 1;
      cout <<a[i][j]<<" ";
    }
        cout <<endl;
    }
    cout <<endl;
    
        for (size_t i=0;i<=n/2;i++){
        for(size_t j=i;j<n-i;j++){
             cout <<a[i][j]<<" ";
             if ((i == 0 && j==0) || a[i][j] >= max1) max1=a[i][j];
        }
    }
    cout <<"max1="<<max1<<"\n";
    
    if (n%2!=0) k=n/2; else k=n/2-1;
         for (size_t i=n-1;i>k;i--){             
        for(size_t j=n-i-1;j<i+1;j++){
             cout <<a[i][j]<<" ";
             if ((i == n-1 && j==0) || a[i][j] >= max2) max2=a[i][j];
        }
    }
  cout <<"max2="<<max2<<"\n";
    
    if (max1>=max2) MAX=max1;
    else MAX=max2;
    cout <<"MAX="<<MAX<<"\n";
    delete[]a;
 
system("pause");
return 0;
}
1
16.03.2018, 20:49
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2018, 20:49

Наибольший элемент матрици н-ого порядка в заштрихованной области
Всем доброго времени суток, столкнулся с тем что программа работаёт правильно через раз, помогите...

Найти сумму элементов в заштрихованной области матрицы
Дана матрица А чисел размером 5х5 элементов. Найти сумму элементов массива А из заштрихованной...

Найти сумму элементов матрицы в заштрихованной области
Найти сумму элементов матрицы в заштрихованной области.Ввод и вывод матрицы оформить в виде...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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