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

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

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

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

25.05.2014, 16:38. Просмотров 263. Ответов 2
Метки нет (Все метки)

Друзья, помогите с задачей.
Условие: Дана матрица 5х5, найти сумму элементов заштрихованной области (изображение в прикреплённом файле).

В общем, идея у меня появилась одна: найти сумму области выше главной диагонали до ниже противоположной диагонали, вместе с ней включительно.
Т.е. это условие i < j - для элементов выше главной диагонали, и i + j > n + 1 - для элементов ниже противоположной диагонали.
Беда в том, что не знаю как это реализовать. Как сделать, чтобы посчитало сумму области выше главной диагонали до области ниже противоположной диагонали, соответственно всё наоборот?

Пробовал написать код, для проверки, чтобы просто заполнить эти области 1 и 0 (главное чтобы работало, найти сумму не составит труда), и всё не то... В общем, запутался с этой задачей.
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
#include <iostream>
#include <iomanip>
using namespace std;
 
int main()
{
    const int n = 5;
    int a[n][n],
    int b[n][n] = {{5, 5, 5, 5, 5},
                   {5, 5, 5, 5, 5},
                   {5, 5, 5, 5, 5},
                   {5, 5, 5, 5, 5},
                   {5, 5, 5, 5, 5}};
 
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            a[i][j] = b[i][j];
 
// Заполняем массив а
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (i < j) // выше главной диагонали
                a[i][j] = 0;
            if (i + j > n + 1) //до и ниже провоположной диагонали
                a[i][j] = 1;
        }
    }
 
// Выводим массив а
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
            cout << setw (2) << a[i][j];
        cout << endl;
    }
    return 0;
}
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2014, 16:38     Найти сумму элементов массива
Посмотрите здесь:

Найти сумму элементов главной диагонали и от каждого элемента массива отнять эту сумму - C++
Всем доброго времени суток. Прошу помочь новичку решить двумерный массив. Для Borland C++ 3.1 Дан двумерный массив размером m на n. Найти...

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

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

Сформировать одномерный массив из элементов, стоящих над главной диагональю матрицы K(m,m). Найти сумму элементов этого массива. - C++
Сформировать одномерный массив из элементов, стоящих над главной диагональю матрицы K(m,m). Найти сумму элементов этого массива.

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

Найти сумму элементов массива - C++
Найти сумму элементов массива, расположенных между первым и последним положительными элементами.

Найти сумму элементов массива - C++
Прошу помочь буду блогодарна ,заранее спасибо!! Найти сумму элементов массива,расположенных после первого положительного элемента

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

Найти сумму элементов массива - C++
помогите найти ошибку #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;numeric&gt; using namespace std; int main() { ...

Найти сумму элементов массива - C++
Разработать функцию, в которую передается массив типа float, что возвращает сумму элементов этого массива. Не шарю, если можно-то...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6287 / 5890 / 1910
Регистрация: 18.12.2011
Сообщений: 15,122
Завершенные тесты: 1
25.05.2014, 17:04     Найти сумму элементов массива #2
C++
1
2
3
4
5
6
7
8
9
10
11
// Заполняем массив а
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (j>i  && j<n-i  || j>n-i && j<i)
                a[i][j] = 1;
           else
                a[i][j] = 0;
        }
    }
kivalrd
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 50
25.05.2014, 18:06  [ТС]     Найти сумму элементов массива #3
zss, немножко не так работает, но огромное спасибо за наводку!
Немного переделав, получилось, что нужно:
C++
1
2
3
4
5
6
7
8
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if ( (j > i - 1 && j < n - i) || (i > j - 1 && j + i > n - 2) )
                a[i][j] = 1;
        }
    }
Найти сумму элементов массива

Соответственно и для нахождения суммы этих элементов:
C++
1
2
3
4
5
6
7
8
9
    int sum = 0;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if ( (j > i - 1 && j < n - i) || (i > j - 1 && j + i > n - 2) )
                sum += a[i][j];
        }
    }
Найти сумму элементов массива
Ещё раз спасибо!
Yandex
Объявления
25.05.2014, 18:06     Найти сумму элементов массива
Ответ Создать тему
Опции темы

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