Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/34: Рейтинг темы: голосов - 34, средняя оценка - 4.85
7 / 7 / 2
Регистрация: 19.10.2008
Сообщений: 10

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

19.10.2008, 20:19. Показов 6872. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана целочисленная квадратная матрица.
Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.

Скока не парился, не получается, подскажите как правильно.
2
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.10.2008, 20:19
Ответы с готовыми решениями:

Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы
Народ!!! Скиньте кто-нибудь код, завтра сдавать уже!!!

Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы
Дана целочисленная квадратная матрица. Определить: 1) произведения элементов в тех строках, которые не содержат отрицательных элементов. ...

Определить максимум среди сумм элементов диагоналей
Дана целочисленная квадратная матрица. Определить: 1) произведение элементов в тех строках, которые не содержат отрицательных элементов; ...

11
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
20.10.2008, 11:53
Покажи, как парился.
1
 Аватар для Sergei
1513 / 780 / 103
Регистрация: 22.04.2008
Сообщений: 1,610
20.10.2008, 11:56
Да покажи код а мы поможем если что либо задай конкретный вопрос что в этой задачи не понятно как найти диагонали или что- то другое
1
 Аватар для ABTOP
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
20.10.2008, 15:50
Цитата Сообщение от Vourhey Посмотреть сообщение
Покажи, как парился.
Цитата Сообщение от Sergei Посмотреть сообщение
Да покажи код а мы поможем если что либо задай конкретный вопрос что в этой задачи не понятно как найти диагонали или что- то другое
Люди дело говорят...
А если кода нету, то поисчи по форуме, подобные темы были...
1
7 / 7 / 2
Регистрация: 19.10.2008
Сообщений: 10
20.10.2008, 21:25  [ТС]
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Всё, уже разобрался)

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;
вот так получица)
1
3 / 3 / 0
Регистрация: 20.01.2009
Сообщений: 6
26.04.2009, 16:39
проблема с той же самой задачей на С... честно говоря, не поняла, как решает её 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;
}
если надо, могу выложить всю программу для проверки
1
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 9
06.06.2009, 23:28
A-nutka! очень прошу выложить весь текст программы
0
Заказ софта
 Аватар для Search..
343 / 188 / 21
Регистрация: 26.05.2009
Сообщений: 863
07.06.2009, 00:10
a-Nutka, Вера: Девочки, мне бы Ваши проблемы...
1
3 / 3 / 0
Регистрация: 20.01.2009
Сообщений: 6
07.06.2009, 14:02
Вера, вот текст. в комментариях автозаполнение, а так ввод элементов вручную. прога рабочая и зачтённая)))
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, ну, какой курс, такие и проблемы))) мы ж маленькие ещё)))
2
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 9
07.06.2009, 15:37
Спасибо большое! Но я уже сделала)), поэтому в вашем коде разбираться не стала...могу сказать одно: задача с подвохом и не такая уж простая как кажется, поэтому все что напишу ниже думаю понадобится кому нибудь)))...
Итак, возьмем например квадратную матрицу 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 значения....
вот)))
0
 Аватар для Em$
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 41
07.06.2009, 20:10
Здравствуйте...я наверное тупой......помогите решить задачу....
Транспонировать матрцу,т.е заменить строки столбцами....матрицу ввести с клавиатуры.
0
3 / 3 / 0
Регистрация: 20.01.2009
Сообщений: 6
07.06.2009, 20:30
да, уж, непростая) я над ней два дня безвылазно просидела)
кстати, я считала угловые элементы диагоналями) нам этого в задании не уточняли, решила сделать так, но в решении разницы особо никакой)))
в твоём коде тоже нет особого желания разбираться) тем более, не знаю, что такое билдеровский компонент, мы на С++ не пишем)
тебе тоже спасибо ещё и за пояснения, думаю, кому-нибудь это ещё пригодиться)))

Добавлено через 1 минуту 2 секунды
ёлки... не тому "спасибо" сказала...)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.06.2009, 20:30
Помогаю со студенческими работами здесь

Максимум среди сумм элементов диагоналей матрицы: исправить
Задача, выводит максимум среди сумм элементов диагоналей матрицы. Помогите, пожалуйста исправить что бы нормально выводилась матрица,...

Определить максимум среди сумм элементов диагоналей, параллельных главной
Все необходимые данные должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается. Дана...

Максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы
надо короче чтоб прога искала максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы. У меня если квадратная...

Максимум среди сумм элементов диагоналей, параллельной главной диагонали матрицы
int i,j, max = 0,sum = 0,index = n-1,dlina = 1; while(index) { for(i = 0,j = index; i &lt; dlina; ++i,...

Максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы
Всем здравствуйте! Помогите написать код по нахождению максимума среди сумм элементов диагоналей, параллельных главной диагонали матрицы. И...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru