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

Найти наибольшее из значений элементов, расположенных в закрашенной части матрицы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.83
Flaina
 Аватар для Flaina
4 / 4 / 1
Регистрация: 09.11.2010
Сообщений: 31
08.03.2011, 18:17     Найти наибольшее из значений элементов, расположенных в закрашенной части матрицы #1
Дана действительная квадратная матрица порядка n. Найти наибольшее из значений элементов, расположенных в закрашенной части матрицы.

Всю программу писать не надо, помогите именно с нахождением максимума в данной закрашенной части.
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2011, 18:17     Найти наибольшее из значений элементов, расположенных в закрашенной части матрицы
Посмотрите здесь:

C++ Найти сумму элементов, расположенных в закрашенной части матрицы
C++ Найти сумму элементов, расположенных в закрашенной части матрицы на рисунке
C++ Дана действительная матрица порядка n. Найти сумму элементов, расположенных в закрашенной части матрицы на рисунке.
C++ Найти наибольшее и наименьшее из значений элементов, расположенных в заштрихованной части матрицы
Дана действительная матрица порядка n. Найти сум¬му элементов, расположенных в закрашенной части матрицы на рисунке. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
08.03.2011, 20:01     Найти наибольшее из значений элементов, расположенных в закрашенной части матрицы #2
Верхняя область задается вложенными циклами:
C++
1
2
3
for(i=0;i<N/2+1;i++)
        for(j=i;j<N-i;j++)
............
Нижняя:
C++
1
2
3
for(i=N/2;i<N;i++)
        for(j=N-i-1;j<i+1;j++)
.............
Можно проверить с помощью этого кода:
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
#include <iostream>
#define N 9
using namespace std;
 
 
int main()
{
    int i,j, A[N][N];
    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
            A[i][j]=0;
 
    for(i=0;i<N/2+1;i++)
        for(j=i;j<N-i;j++)
            A[i][j]=1;
    
    for(i=N/2;i<N;i++)
        for(j=N-i-1;j<i+1;j++)
            A[i][j]=1;
   
    for(i=0;i<N;i++)
    {   for(j=0;j<N;j++)
            cout<<A[i][j]<<" ";
    cout<<endl;}
 
    cin.get();
    return 0;
}
Работает и для четных N.
Ну, а как найти максимум, вы знаете.
Flaina
 Аватар для Flaina
4 / 4 / 1
Регистрация: 09.11.2010
Сообщений: 31
09.03.2011, 18:02  [ТС]     Найти наибольшее из значений элементов, расположенных в закрашенной части матрицы #3
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define n 5
void main()
{
int a[n][n],i,j,max1,max2,max;
max1=a[0][0];max2=a[n/2][n/2];
clrscr();
for(i=0;i<n;i++)
 for(j=0;j<n;j++)
   a[i][j]=random(100);
 
   for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
 printf("%d      ",a[i][j]);
 printf("\n");}
 
for(i=0;n<n/2+1;i++)
 for(j=i;j<n-i;j++)
  if(a[j][n-j-1]>max1)
      max1=a[j][n-i-1];
 
    for(i=n/2;i<n;i++)
     for(j=n-i-1;j<i+1;j++)
       if (a[j][n-j-1]>max2)
      max2=a[j][n-i-1];
  if(max1>max2)max=max1; else max=max2;
  printf("maks = %d  max1=%d, max2 = %d",max,max1,max2);
 
  getch();
  }
помогите исправить, там в циклах, где if, какие будут i,j? Потому что максимум он не в тех местах ищет.
IrineK
Заблокирован
09.03.2011, 18:05     Найти наибольшее из значений элементов, расположенных в закрашенной части матрицы #4
В if-ах будут тупо i,j
Flaina
 Аватар для Flaina
4 / 4 / 1
Регистрация: 09.11.2010
Сообщений: 31
09.03.2011, 18:26  [ТС]     Найти наибольшее из значений элементов, расположенных в закрашенной части матрицы #5
Исправлено, но все равно, максимум находит неправильно, не из обозначенной области.
Pascal
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define n 5
void main()
{
int a[n][n],i,j,max1,max2,max;
max1=a[0][0];max2=a[n/2][n/2];
clrscr();
for(i=0;i<n;i++)
 for(j=0;j<n;j++)
   a[i][j]=random(85);
 
   for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
 printf("%d      ",a[i][j]);
 printf("\n");}
 
for(i=0;i<n/2+1;i++)
 for(j=i;j<n-i;j++)
  if(a[i][j]>max1)
      max1=a[i][j];
 
    for(i=n/2;i<n;i++)
     for(j=n-i-1;j<i+1;j++)
       if (a[i][j]>max2)
      max2=a[i][j];
  if(max1>max2)max=max1; else max=max2;
  printf("maks = %d  max1=%d, max2 = %d",max,max1,max2);
 
  getch();
  }

ложная тревога, была опечатка
name1234567890
0 / 0 / 0
Регистрация: 22.08.2014
Сообщений: 2
22.08.2014, 22:23     Найти наибольшее из значений элементов, расположенных в закрашенной части матрицы #6
Здравствуйте! Помогите пожалуйста с задачей!!!!!!

Дана действительная квадратная матрица порядка n. Найти наибольшее и наименьшее из значений элементов, расположенных в заштрихованной части матрицы.
Миниатюры
Найти наибольшее из значений элементов, расположенных в закрашенной части матрицы  
Yandex
Объявления
22.08.2014, 22:23     Найти наибольшее из значений элементов, расположенных в закрашенной части матрицы
Ответ Создать тему
Опции темы

Текущее время: 09:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru