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

Определить максимум среди сумм элементов диагоналей матрицы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 35, средняя оценка - 4.74
Brejneff
6 / 6 / 1
Регистрация: 19.10.2008
Сообщений: 10
19.10.2008, 20:19     Определить максимум среди сумм элементов диагоналей матрицы #1
Дана целочисленная квадратная матрица.
Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.

Скока не парился, не получается, подскажите как правильно.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2008, 20:19     Определить максимум среди сумм элементов диагоналей матрицы
Посмотрите здесь:

C++ Максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы
Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы C++
Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы C++
C++ Определить максимум среди сумм элементов диагоналей
C++ Считать из файла матрицу. Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали
Максимум среди сумм элементов диагоналей матрицы: исправить C++
C++ Максимум среди сумм элементов диагоналей, параллельной главной диагонали матрицы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
20.10.2008, 11:53     Определить максимум среди сумм элементов диагоналей матрицы #2
Покажи, как парился.
Sergei
 Аватар для Sergei
1424 / 691 / 40
Регистрация: 22.04.2008
Сообщений: 1,608
20.10.2008, 11:56     Определить максимум среди сумм элементов диагоналей матрицы #3
Да покажи код а мы поможем если что либо задай конкретный вопрос что в этой задачи не понятно как найти диагонали или что- то другое
ABTOP
 Аватар для ABTOP
36 / 36 / 2
Регистрация: 09.06.2008
Сообщений: 324
20.10.2008, 15:50     Определить максимум среди сумм элементов диагоналей матрицы #4
Цитата Сообщение от Vourhey Посмотреть сообщение
Покажи, как парился.
Цитата Сообщение от Sergei Посмотреть сообщение
Да покажи код а мы поможем если что либо задай конкретный вопрос что в этой задачи не понятно как найти диагонали или что- то другое
Люди дело говорят...
А если кода нету, то поисчи по форуме, подобные темы были...
Brejneff
6 / 6 / 1
Регистрация: 19.10.2008
Сообщений: 10
20.10.2008, 21:25  [ТС]     Определить максимум среди сумм элементов диагоналей матрицы #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Всё, уже разобрался)

PHP
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
    max = INT_MIN;
    
    for(t = 1; t < Len; ++t)
    {
        sum1 = 0;
        i1 = t;
        j1 = 0;
        
        sum2 = 0;
        i2 = 0;
        j2 = t;
        
        while(i1 < Len && j2 < Len)
        {
            sum1 += matrix[i1][j1];
            sum2 += matrix[i2][j2];
            
            ++i1;
            ++j1;    
            ++i2;
            ++j2;            
        }
        maxsum = sum1 > sum2 ? sum1 : sum2;
        max = maxsum > max ? maxsum : max;
    }
    cout<<max<<endl;
вот так получица)
a-Nutka
3 / 3 / 1
Регистрация: 20.01.2009
Сообщений: 6
26.04.2009, 16:39     Определить максимум среди сумм элементов диагоналей матрицы #6
проблема с той же самой задачей на С... честно говоря, не поняла, как решает её Brejneff. поэтому привожу свой пример. нахождение максимальной суммы в виде функции. пока что пыталась выбрать максимум среди сумм выше главной диагонали, но первую сумму считает правильно, и выводит только её. не пойму, в чем ошибка. либо не правильно идёт сравнение сумм, либо не так переходит к следующей диагонали...

очень прошу посмотреть мой вариант и может как-то откорректировать...

нахождение максимальной суммы (Smax) среди элементов диагоналей выше главной:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int summa(int *ar,int n)
  {
  int m,j,i;
  int S=0, Smax=-100;
  m=n;
  for (j=1;j<n;j++)
    {
    for (i=0; i<m-1; i++)
      {
      S=S+(*(ar+i*n+j));
      j++;
      }
    m--;
    if (S>Smax) {Smax=S;}
    }
  return Smax;
}
если надо, могу выложить всю программу для проверки
Вера
Сообщений: n/a
06.06.2009, 23:28     Определить максимум среди сумм элементов диагоналей матрицы #7
A-nutka! очень прошу выложить весь текст программы
Search..
Заказ софта
 Аватар для Search..
339 / 184 / 10
Регистрация: 26.05.2009
Сообщений: 863
07.06.2009, 00:10     Определить максимум среди сумм элементов диагоналей матрицы #8
a-Nutka, Вера: Девочки, мне бы Ваши проблемы...
a-Nutka
3 / 3 / 1
Регистрация: 20.01.2009
Сообщений: 6
07.06.2009, 14:02     Определить максимум среди сумм элементов диагоналей матрицы #9
Вера, вот текст. в комментариях автозаполнение, а так ввод элементов вручную. прога рабочая и зачтённая)))
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
51
52
53
54
55
56
57
58
59
60
61
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
 
int summa(int *ar,int n)
  {
  int m,j,i,k;
  int S=0, Smax=-10000;
  m=n;
  for (j=1;j<n;j++)
    {
    k=0;
    S=0;
    for (i=0; i<m-1; i++)
      {
      S=S+(*(ar+i*n+j+k));
      k++;
      }
    m--;
    if (S>Smax) {Smax=S;}
    }
  m=n;
  for (i=1;i<n;i++)
    {
    k=0;
    S=0;
    for (j=0; j<m-1; j++)
      {
      S=S+(*(ar+(i+k)*n+j));
      k++;
      }
    m--;
    if (S>Smax) {Smax=S;}
    }
  return Smax;
}
 
void main()
  {
  int i,j,n,Smax,k;  //,p=-3,b=7;
  int Pr[100];
  int *a;
  clrscr();
//  randomize();
  printf("vvedite razmernost matrici: ");
  scanf("%d",&n);
  printf("\n ");
  a=(int*)malloc (n*n*sizeof(int));
  for (i=0;i<n;i++)
    {
    for (j=0;j<n;j++)
      {
    //  *(a+i*n+j)=random(b-p+1)+p;
      //     printf("%d\t", *(a+i*n+j));
      printf("a[%d,%d]=",i+1,j+1);
      scanf("%d",(a+i*n+j));
      }
    }
  printf("\n ");
  for(i=0;i<n;i++)


Search, ну, какой курс, такие и проблемы))) мы ж маленькие ещё)))
Вера
Сообщений: n/a
07.06.2009, 15:37     Определить максимум среди сумм элементов диагоналей матрицы #10
Спасибо большое! Но я уже сделала)), поэтому в вашем коде разбираться не стала...могу сказать одно: задача с подвохом и не такая уж простая как кажется, поэтому все что напишу ниже думаю понадобится кому нибудь)))...
Итак, возьмем например квадратную матрицу 5х5 (хотя легко сделать ввод размера матрицы самим пользователем)...дак вот матрица 5х5: делала в C++Builder в StringGrid'e, поэтому индексы матрицы именно такие:
00 10 20 30 40
01 11 21 31 41
02 12 22 32 42
03 13 23 33 43
04 14 24 34 44
и по заданию по сути необходимо сложить вот эти элементы: 10 21 32 43, затем 20 31 42, затем 30 41.... и соответсвенно параллельные диагонали ниже главной: 01 12 23 34, затем 02, 13, 24, затем 03, 14
Фишка в том , что угловые элементы (в данном случае 40 и 04) диагональю не являются ... Заметила, что у половины вариантов, предложенных на различных форумах это не учтено!
Для удобства я разделила решение задачи на две части: сначала вычисляем суммы элементов каждой паралельной диагонали, находящиеся выше главной! Затем работаемс "нижней" частью! В результате, алгоритм получается следующий (приведу тока часть алгоритма, который работает с верхними паралелльными диагоналями матрицы):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for (i=1; i<=n-2; i++)
    {j=0;
     int i1=i;
     sum1=0;
      while (i1<=n-1)
       {
        sum1=sum1+mas[i1][j];
        j++;
        i1++;
       }
     //здесь использую билдеровский компонент....но можно и по другому хранить значения
      Memo2->Lines->Add(sum1); 
      if (sum1>max1) max1=sum1;
    }
таким же образом ищется и максимальный элемент из сумм элементов диагоналей параллельных главной! И в конце у же сравниваются 2 значения....
вот)))
Em$
 Аватар для Em$
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 41
07.06.2009, 20:10     Определить максимум среди сумм элементов диагоналей матрицы #11
Здравствуйте...я наверное тупой......помогите решить задачу....
Транспонировать матрцу,т.е заменить строки столбцами....матрицу ввести с клавиатуры.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2009, 20:30     Определить максимум среди сумм элементов диагоналей матрицы
Еще ссылки по теме:

C++ Найти максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы
Найти максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы C++
Определить максимум среди сумм эллементов диагоналей параллельных главной диагонали матрицы C++
C++ Определить максимум среди сумм элементов диагоналей, параллельных главной
C++ Для заданной матрицы найти максимум среди сумм элементов диагоналей, параллельных главной диагонали

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

Или воспользуйтесь поиском по форуму:
a-Nutka
3 / 3 / 1
Регистрация: 20.01.2009
Сообщений: 6
07.06.2009, 20:30     Определить максимум среди сумм элементов диагоналей матрицы #12
да, уж, непростая) я над ней два дня безвылазно просидела)
кстати, я считала угловые элементы диагоналями) нам этого в задании не уточняли, решила сделать так, но в решении разницы особо никакой)))
в твоём коде тоже нет особого желания разбираться) тем более, не знаю, что такое билдеровский компонент, мы на С++ не пишем)
тебе тоже спасибо ещё и за пояснения, думаю, кому-нибудь это ещё пригодиться)))

Добавлено через 1 минуту 2 секунды
ёлки... не тому "спасибо" сказала...)))
Yandex
Объявления
07.06.2009, 20:30     Определить максимум среди сумм элементов диагоналей матрицы
Ответ Создать тему
Опции темы

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