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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Flaerok
1 / 1 / 0
Регистрация: 26.09.2010
Сообщений: 22
#1

Найти максимум среди сумм элементов диагоналей - C++

14.06.2012, 20:41. Просмотров 933. Ответов 8
Метки нет (Все метки)

Для заданной целочисленной матрицы nXn (где n - константа) найти максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.
Ребят, помогите пожалуйста!!! Моя программа ищет максимум только среди диагоналей, которые выше главной диагонали. Как изменить программу чтобы находил максимум среди сумм диагоналей, которые ниже главной и выше?
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
62
63
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{    
   const int n = 3;
   int i,j,sum=0,vib=0,maxsum=0;   
        int a[n][n],s[2*n];
           printf ("Kak vvodit' elementi?\n0 - random\n1 - s klaviaturi\n");
           scanf ("%i", &vib);
           printf ("\nMi vibrali: %i\n",vib);
        srand(time(0));
        switch (vib)
        {
        case 0://random
                for (i=0; i<n; i++)
                        for (j=0; j<n; j++) 
                                a[i][j] = rand()%20;
                printf("\n");
                break;
        case 1:// sklavi
                for (i=0; i<n; i++)
                        for (j=0; j<n; j++)
                        {
                                printf ("a[%i][%i]= ", i+1, j+1);
                                scanf ("%i", &a[i][j]);
                        }
        }
  printf("Nasha matrica: \n");
  for (i=0; i<n; i++)
        {
                for (j=0; j<n; j++)
                {
                        printf ("%i ", a[i][j]);
                }
                printf ("\n");
        }
printf("\n");
printf ("Cymmi elementov diagonaley matrici, paralel'nie glavnoy: \n");
 for (j=0;j<(2*n);j++) s[j]=0;
  for (i=0;i<n;i++)
  {
      for (j=0;j+i<n;j++)
      {
          s[j]+=a[i][i+j];
          s[n+j]+=a[i+j][i]; 
      }      
  }
  for (j=0;j<n;j++) printf("%d\n",s[j]);
  for (j=n+1;j<(2*n);j++) printf("%d\n",s[j]);
  maxsum=-1000;
  for (j=1;j<n;j++)
      if (maxsum<s[j]) 
          maxsum=s[j];
  printf("\n");
  printf("Max sum = %d\n",maxsum);
  _getch();
  return 0;
  }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2012, 20:41     Найти максимум среди сумм элементов диагоналей
Посмотрите здесь:

Найти максимум среди сумм элементов диагоналей, параллельных главной - C++
По заданию, дана квадратная целочисленная матрица, нужно найти максимум среди сумм элементов диагоналей, параллельных главной диагонали. ...

Найти максимум среди сумм элементов диагоналей, параллельных побочной диагонали - C++
Никак мозг не хочет повернуться, что бы понять как делается этот цикл for. У нас есть матрица (к примеру 5*5), надо найти максимум среди...

Найти максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы - C++
Задана целочисленная квадратная матрица A(N x N). Найти максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.

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

Найти максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using namespace...

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
blits
2 / 2 / 0
Регистрация: 06.02.2012
Сообщений: 33
14.06.2012, 22:21     Найти максимум среди сумм элементов диагоналей #2
C++ (Qt)
1
2
3
4
5
6
for(int i=0; i<n; i++)
  for(int j=0; j<n; j++)
      if(j>i){
      ....
      // что-то делаем. это если выше главной диагонали
      }
соответственно, если ниже главной диагонали
C++ (Qt)
1
2
3
4
5
6
for(int i=0; i<n; i++)
  for(int j=0; j<n; j++)
      if(j<i){
      ....
      // что-то делаем
      }
Flaerok
1 / 1 / 0
Регистрация: 26.09.2010
Сообщений: 22
15.06.2012, 17:33  [ТС]     Найти максимум среди сумм элементов диагоналей #3
В том то и дело, что так не получается...
Помогите пожалуйста, люди((

Добавлено через 11 минут
Если я тебя правильно понял то получается вот так:
Диагонали которые выше главной он правильно считает, а второе условие, когда ниже главной, он только главную диагональ просматривает.... Помогите пожалуйста!!!Ведь ошибка то на самом деле как обычно и не такая сложная, просто который день с ней мучаюсь никак найти не могу((
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{    
   const int n = 3;
   int i,j,sum=0,vib=0,maxsum1=0,maxsum2=0;   
        int a[n][n],s[2*n];
           printf ("Kak vvodit' elementi?\n0 - random\n1 - s klaviaturi\n");
           scanf ("%i", &vib);
           printf ("\nMi vibrali: %i\n",vib);
        srand(time(0));
        switch (vib)
        {
        case 0://random
                for (i=0; i<n; i++)
                        for (j=0; j<n; j++) 
                                a[i][j] = rand()%20;
                printf("\n");
                break;
        case 1:// sklavi
                for (i=0; i<n; i++)
                        for (j=0; j<n; j++)
                        {
                                printf ("a[%i][%i]= ", i+1, j+1);
                                scanf ("%i", &a[i][j]);
                        }
        }
  printf("Nasha matrica: \n");
  for (i=0; i<n; i++)
        {
                for (j=0; j<n; j++)
                {
                        printf ("%i ", a[i][j]);
                }
                printf ("\n");
        }
printf("\n");
printf ("Cymmi elementov diagonaley matrici, paralel'nie glavnoy: \n");
 for (j=0;j<(2*n);j++) s[j]=0;
  for (i=0;i<n;i++)
  {
      for (j=0;j+i<n;j++)
      {
          s[j]+=a[i][i+j];
          s[n+j]+=a[i+j][i]; 
      }      
  }
  for (j=0;j<n;j++) printf("%d\n",s[j]);
  for (j=n+1;j<(2*n);j++) printf("%d\n",s[j]);
  maxsum1=-1000;
  maxsum2=-1000;
  for(int i=0; i<n; i++)
  for(int j=0; j<n; j++)
      if(j>i)
      {
           if (maxsum1<s[j]) 
          maxsum1=s[j];
      }
  for(int i=0; i<n; i++)
  for(int j=0; j<n; j++)
      if(j<i)
      {
           if (maxsum2<s[j]) 
          maxsum2=s[j];
      }
      if (maxsum1>maxsum2)
           printf("\n");
           printf("Max sum1 = %d\n",maxsum1);
      if (maxsum1<maxsum2)
           printf("Max sum2 = %d\n",maxsum2);printf("\n");         
      if (maxsum1==maxsum2)
           printf("\n");
           printf("Max sum = %d\n",maxsum1);
  _getch();
  return 0;
  }
Добавлено через 2 часа 53 минуты
Помогите кто-нибудь пожалуйста!!! Для вас же это не сложно....
blits
2 / 2 / 0
Регистрация: 06.02.2012
Сообщений: 33
15.06.2012, 17:35     Найти максимум среди сумм элементов диагоналей #4
Что значит "Max sum1" - максимальная сумма?
Flaerok
1 / 1 / 0
Регистрация: 26.09.2010
Сообщений: 22
15.06.2012, 21:55  [ТС]     Найти максимум среди сумм элементов диагоналей #5
ну сначала нахожу максимальную сумму элементов между диагоналями, которые выше главной. записываю на переменную maxsum1.
потом ниже главной, записываю на maxsum2.
потом сравниваю их и вывожу на экран максимальную сумму элементов диагонали.
правильно делаю или как-то по другому надо?
подскажите пожалуйста...
blits
2 / 2 / 0
Регистрация: 06.02.2012
Сообщений: 33
15.06.2012, 23:09     Найти максимум среди сумм элементов диагоналей #6
C++ (Qt)
1
2
maxsum1=-1000;
  maxsum2=-1000;
что это?!?
Flaerok
1 / 1 / 0
Регистрация: 26.09.2010
Сообщений: 22
15.06.2012, 23:38  [ТС]     Найти максимум среди сумм элементов диагоналей #7
эм.... там можно и не -1000 поставить -10, -5 любое число, главное чтобы оно было меньше максимальной суммы.
это начальное значение maxsum. при сравнивании maxsum с суммой элементов смотрим если maxsum меньше суммы тогда присваиваем maxsum значение этой суммы. и таким образом maxsum у нас принимает значение максимальной суммы элементов.
blits
2 / 2 / 0
Регистрация: 06.02.2012
Сообщений: 33
16.06.2012, 00:37     Найти максимум среди сумм элементов диагоналей #8
Цитата Сообщение от Flaerok Посмотреть сообщение
там можно и не -1000 поставить -10, -5 любое число, главное чтобы оно было меньше максимальной суммы.
это начальное значение maxsum.
говнакод короче. что за s[j]?! нафиг его вводить?! а в этом условии
C++ (Qt)
1
 if (maxsum1<s[j])
s[j] = -50 000 то что?!

перепиши нормально.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2013, 15:09     Найти максимум среди сумм элементов диагоналей
Еще ссылки по теме:

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
abulharis
Сообщений: n/a
29.01.2013, 15:09     Найти максимум среди сумм элементов диагоналей #9
Ну как? Защитили работу?
Поступил в институт, а по информатике такую курсовую задали мне...
Yandex
Объявления
29.01.2013, 15:09     Найти максимум среди сумм элементов диагоналей
Ответ Создать тему
Опции темы

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