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

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

Восстановить пароль Регистрация
 
TheNessi
0 / 0 / 1
Регистрация: 01.12.2012
Сообщений: 32
03.10.2013, 13:52     Найти максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы #1
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
#include <iostream>
 
#include <iomanip>
 
#include <conio.h>
 
#include <math.h> 
 
using namespace std; 
 
int main()
//Дана целочисленная квадратная матрица. Определить: 
 
// максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. 
 
 
{ 
const int n = 5,m=9;
int a[n][n] = {{1, 2, -3, 4, 5}, 
 
          {3, 0, 3, 3, 3}, 
 
               {1, -12, 1, 4, 5}, 
 
               {1, 7, 8, -1, 2}, 
 
               {2, 7, 2, 6, 2}}; 
int sum,i,j; 
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++) 
cout << setw(4) << a[i][j]; 
cout << endl; 
}
int summas[m] = {0};
//
//цикл для присвоения элементов матрицы к элементам массива.
//
//выводим получившийся массив
int max=0;
for (i=0;i<m;i++)
cout << setw(4) << summas[m];
cout<< endl;
//находим максимум, среди элементов
for (i=0;i<m;i++)
if (summas[i]>max) max=summas[i];
cout<<"max summa diagonali=  "<<max<<endl;
и так идея такова, мне нужно присвоить элементы матрицы a[n][n], к элементам одномерного массива summas[m] и уже из них найти максимум.
Присвоение идет следующим образом, первая строка матрицы (5 элементов) присваевается к первым пяти элементам массива(т.е. начиная с summas[0]), затем сдвигается на один элемент, присваевается следующая строка матрицы( т.е. с summas[1]). Причем сложение элементов идет по модулю.
Если расписать матрицу, получается примерно так:
C++
1
2
summas[0]=a[0][0];
summas[1]=a[1][0]+a[0][1];
и так далее.
Так вот нужна помощь в составлении цикла присвоения, в коде отметил место для этого цикла
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2013, 13:52     Найти максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
03.10.2013, 15:30     Найти максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы #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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
const int n = 5;
 
int main(int argc, char* argv[])
{
    int a[n][n] = { { 1,   2, -3,  4,  5 }, 
    
                    { 3,   0,  3,  3,  3 }, 
  
                    { 1, -12,  1,  4,  5 }, 
 
                    { 1,   7,  8, -1,  2 }, 
 
                    { 2,   7,  2,  6,  2 } }; 
 
    int b[2*n-2] = { 0 };
    for (int k = 0; k < n-1; k++)
    {
        int i1 = 0, j1 = k;
        int sum1 = 0, sum2 = 0;
        while (j1 >= 0) sum1+=abs(a[i1++][j1--]);
 
        int i2 = (n-1)-k, j2 = n-1;
        while (i2 < n) sum2+=abs(a[i2++][j2--]);
 
        if ((sum1 != 0) || (sum2 != 0)) 
        {
            b[k] = sum1;
            b[((2*n)-2)-(k+1)] = sum2;
        }
    }
 
    int max = 0;
    for (int t = 0; t < 2*n-2; t++)
        max = (b[t] > b[max]) ? t : max;
 
    printf("maximum b[%d] = %d\n",max,b[max]);
 
    _getch();
 
    return 0;
}
http://codepad.org/k1fVhwyb
Миниатюры
Найти максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы  
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
03.10.2013, 15:46     Найти максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы #3
Такие темы почему-то постоянно возникают. У вас какой задачник там на уроках? Одинаковый во всех школах, наверное!
Только сегодня всплывала тема.http://www.cyberforum.ru/cpp-beginne...ead291322.html
Yandex
Объявления
03.10.2013, 15:46     Найти максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы
Ответ Создать тему
Опции темы

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