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

Как наити суммы всех диагоналей выше главной - C++

Восстановить пароль Регистрация
 
Toen
0 / 0 / 0
Регистрация: 30.11.2010
Сообщений: 50
15.12.2013, 01:09     Как наити суммы всех диагоналей выше главной #1
Вопрос в названии, вроде элементарно но как то не догоняю
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2013, 01:09     Как наити суммы всех диагоналей выше главной
Посмотрите здесь:

C++ Найти произведение главной диагонали матрицы и всех диагоналей, параллельной данной
Написать сумму всех верхних диагоналей матрицы, параллельной главной C++
Дана квадратная матрица порядка M. Найти суммы элементов ее диагоналей, параллельных главной (начиная с одноэлементной диагонали A[1,M]) C++
Посчитать суммы в четвертях матрицы которые образуются пересечением главной и побочной диагоналей. C++
Определить: сумма элементов выше главной диагонали меньше суммы элементов ниже главной диагонали? C++
C++ Вычислить суммы элементов главной и побочной диагоналей массива.
C++ Как реализовать условие по нахождению суммы элементов выше главной диагонали?
C++ Найти суммы диагоналей параллельных главной

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
qwestcl
10 / 10 / 1
Регистрация: 30.09.2012
Сообщений: 172
15.12.2013, 02:13     Как наити суммы всех диагоналей выше главной #2
Пусть дана матрица a:
11 12 13 14 15
21 22 23 24 25
31 32 33 34 35
41 42 43 44 45
51 52 53 54 55
где 1й номер - номер строки элемента, 2й - это номер столбца элемента.
тогда сумма диагоналей будет представлять вид:
1я диаг. 2я диаг. 3я диаг. 4я диаг.
a[1][2]; a[1][3]; a[1][4]; a[1][5];
a[2][3]; a[2][4]; a[2][5];
a[3][4]; a[3][5];
a[4][5];
а здесь уже легко проследить зависимость.

сам код:
Кликните здесь для просмотра всего текста

C++ (Qt)
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
#include <iostream>
#include <iomanip>
#include <time.h>
#include <windows.h>
 
using namespace std;
 
int main()
{
    const int sizeArray = 5;
    int array[sizeArray][sizeArray] = {{0}};
    int sumOfDiagonal[sizeArray] = {0};
    int count = 0;
    int bufI = 0, bufJ = 0;
    int k, m;
 
    srand(time(NULL));
 
    for (int i = 0; i < sizeArray; ++i) {
        for (int j = 0; j < sizeArray; ++j) {
            array[i][j] = rand()%50 - 30;
        }
    }
 
    cout << "Исходный массив: " << endl;
    for (int i = 0; i < sizeArray; ++i) {
        for (int  j = 0; j < sizeArray; ++j) {
            cout << setw(5) << array[i][j];
        }
        cout << endl;
    }
 
    bufI = sizeArray;
    bufJ = 1;
 
    for (int q = 0; q < sizeArray-1; ++q) {
        for (k = 0, m = bufJ; k < bufI, m < sizeArray; ++k, ++m){
            sumOfDiagonal[count] += array[k][m];
        }
        count++;
        bufI--;
        bufJ++;
    }
 
    cout << endl << "Cумма диагоналей: " << endl;
    for (int i = 0; i < count; ++i) {
        cout << setw(5) << sumOfDiagonal[i];
    }
 
    return 0;
}
Toen
0 / 0 / 0
Регистрация: 30.11.2010
Сообщений: 50
15.12.2013, 14:37  [ТС]     Как наити суммы всех диагоналей выше главной #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
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
#include <iostream>
#include <iomanip>
#include <time.h>
#include <windows.h>
 
using namespace std;
 
int main()
{ const int sizeArray = 5;
    setlocale(LC_ALL,"");
   
    int array[sizeArray][sizeArray] = {{0}};
    int sumOfDiagonal[sizeArray] = {0};
    int sumOfDiagonal1[sizeArray] = {0};
    int count = 0;
    int bufI = 0, bufJ = 0;
    int k, m;
 
    srand(time(NULL));
 
    for (int i = 0; i < sizeArray; ++i) {
        for (int j = 0; j < sizeArray; ++j) {
            array[i][j] = rand()%10;
        }
    }
 
    cout << "Исходный массив: " << endl;
    for (int i = 0; i < sizeArray; ++i) {
        for (int  j = 0; j < sizeArray; ++j) {
            cout << setw(5) << array[i][j];
        }
        cout << endl;
    }
 
    bufI = sizeArray;
    bufJ = 1;
 
 
for (int q = 0; q < sizeArray-1; ++q)
    {
        
        
        for (k = 0, m = bufJ; 
            k < bufI, m < sizeArray; 
            ++k, ++m){
            sumOfDiagonal[count] += array[m][k];
             sumOfDiagonal1[count] += array[k][m];
        }
        count++;
        bufI--;
        bufJ++;
    }
 
    cout << endl << "Cумма диагоналей: " << endl;
    for (int i = count-1; i>=0; --i) {
        cout << setw(5) << sumOfDiagonal[i];}
    cout<<endl;
    for (int i = 0; i < count; ++i) {
        cout << setw(5) << sumOfDiagonal1[i];
    }
    cout<<endl;
 
 system("pause");
    return 0;
}
Yandex
Объявления
15.12.2013, 14:37     Как наити суммы всех диагоналей выше главной
Ответ Создать тему
Опции темы

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