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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Andrey027
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 75
#1

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

24.01.2014, 15:51. Просмотров 1305. Ответов 30
Метки нет (Все метки)

Массив в памяти разместить динамически (с использованием операций new и delete). Найти сумму элементов, расположенных на главной диагонали

народ помогите сделать задание
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2014, 15:51     Найти сумму элементов, расположенных на главной диагонали.
Посмотрите здесь:
Найти сумму элементов расположенных выше главной диагонали. C++
C++ Массив. Найти сумму элементов, расположенных на главной диагонали
C++ Найти сумму элементов матрицы расположенных по главной диагонали
C++ Найти сумму максимальных элементов, расположенных на главной диагонали матрицы
C++ Найти сумму модулей элементов, расположенных выше главной диагонали
Найти сумму отрицательных элементов расположенных на главной диагонали матрицы C++
C++ В массиве А(12, 12) найти сумму элементов расположенных на главной диагонали матрицы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
24.01.2014, 16:25     Найти сумму элементов, расположенных на главной диагонали. #2
Andrey027,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
int main ()
{
    size_t N;
    std::cout<<"Enter size:";
    std::cin>>N;
    int ** mas = new int *[N];
    std::cout<<"Enter array:\n";
    for(size_t i=0; i<N; i++)
        mas[i] = new int [N];
    for(size_t i=0; i<N; i++)
        for(size_t j = 0; j<N; j++)
            std::cin>>mas[i][j];
    int Sum(1);
    for(size_t i=0; i<N; i++)
        Sum+=mas[i][i];
        std::cout<<"Sum of the main diagonal = "<<Sum;
 
    return 0;
}
Andrey027
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 75
24.01.2014, 16:33  [ТС]     Найти сумму элементов, расположенных на главной диагонали. #3
А это точно двумерный динамический массив? А то больше всего похоже на одномерный.
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
24.01.2014, 16:39     Найти сумму элементов, расположенных на главной диагонали. #4
Цитата Сообщение от Andrey027 Посмотреть сообщение
А это точно двумерный динамический массив? А то больше всего похоже на одномерный.
Мне кажется тебе нужно почитать больше про все это дело.
Вот мы выделяем память под массив(двумерный):
C++
1
2
3
int ** mas = new int *[N];
   for(size_t i=0; i<N; i++)
        mas[i] = new int [N];
А здесь мы заполняем его
C++
1
2
3
   for(size_t i=0; i<N; i++)
        for(size_t j = 0; j<N; j++)
            std::cin>>mas[i][j];
Формула главной диагонали: i = j.
Находим сумму
C++
1
2
3
    int Sum(1);
    for(size_t i=0; i<N; i++)
        Sum+=mas[i][i];
Andrey027
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 75
24.01.2014, 16:45  [ТС]     Найти сумму элементов, расположенных на главной диагонали. #5
А как сделать так чтобы выводило значения (в виде матрицы) введенные с клавиатуры??
Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
24.01.2014, 17:00     Найти сумму элементов, расположенных на главной диагонали. #6
Цитата Сообщение от Andrey027 Посмотреть сообщение
А как сделать так чтобы выводило значения (в виде матрицы) введенные с клавиатуры??
C++
1
2
3
4
5
6
7
8
9
for(size_t i=0; i<N; i++)
        {
            for(size_t j = 0; j<N; j++)
            {
                   std::cout << mas[i][j] << " ";
                   std::cout << "\n";
      
            }
         }
Andrey027
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 75
24.01.2014, 17:04  [ТС]     Найти сумму элементов, расположенных на главной диагонали. #7
Аего вставлять этот код в конце?
Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
24.01.2014, 17:06     Найти сумму элементов, расположенных на главной диагонали. #8
Цитата Сообщение от Andrey027 Посмотреть сообщение
Аего вставлять этот код в конце?
Ну естественно после того как массив заполнили вручную с клавиатуры:
Цитата Сообщение от cooller_94 Посмотреть сообщение
for(size_t i=0; i<N; i++)
for(size_t j = 0; j<N; j++)
std::cin>>mas[i][j];
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
24.01.2014, 17:07     Найти сумму элементов, расположенных на главной диагонали. #9
Цитата Сообщение от Andrey027 Посмотреть сообщение
А как сделать так чтобы выводило значения (в виде матрицы) введенные с клавиатуры??
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
#include <iostream>
#include<iomanip>
int main ()
{
    size_t N;
    std::cout<<"Enter size:";
    std::cin>>N;
    int ** mas = new int *[N];
    std::cout<<"Enter array:\n";
    for(size_t i=0; i<N; i++)
        mas[i] = new int [N];
    for(size_t i=0; i<N; i++)
        for(size_t j = 0; j<N; j++)
            std::cin>>mas[i][j];
    std::cout<<"Array:\n";
    for(size_t i=0; i<N; i++,std::cout<<std::endl)
        for(size_t j = 0; j<N; j++)
            std::cout<<std::setw(5)<<mas[i][j];
    int Sum(1);
    for(size_t i=0; i<N; i++)
        Sum+=mas[i][i];
    std::cout<<"Sum of the main diagonal = "<<Sum;
 
}
Andrey027
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 75
24.01.2014, 17:09  [ТС]     Найти сумму элементов, расположенных на главной диагонали. #10
Она выводит тогда матрицу в столбец. А как сделать чтобы например было
Ввели
1
2
3
1
2
3
2
2
2

И вывело

1 2 3
1 2 3
3 2 2

сумма гл диагон = 5. Что то типа такого.
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
24.01.2014, 17:11     Найти сумму элементов, расположенных на главной диагонали. #11
Andrey027, Последний код мой смотри
Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
24.01.2014, 17:12     Найти сумму элементов, расположенных на главной диагонали. #12
Цитата Сообщение от Andrey027 Посмотреть сообщение
Она выводит тогда матрицу в столбец
C++
1
2
3
4
5
6
 for(size_t i=0; i<N; i++)
        {
            for(size_t j = 0; j<N; j++)
                   std::cout << mas[i][j] << " ";
             std::cout << "\n";           
         }
Andrey027
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 75
24.01.2014, 17:22  [ТС]     Найти сумму элементов, расположенных на главной диагонали. #13
А надо чтобы в строчку

Добавлено через 3 минуты
Она почему то выволдит неверный ответ когда я ввожу значения
размер 2
значения
2
2
2
2
а ответ в итоге 5
Ev_Hyper
Заблокирован
24.01.2014, 17:29     Найти сумму элементов, расположенных на главной диагонали. #14
Andrey027, там неточность поменяйте строку:
C++
1
int Sum(1);
на
C++
1
int Sum=0;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2014, 17:32     Найти сумму элементов, расположенных на главной диагонали.
Еще ссылки по теме:
Найти сумму всех элементов матрицы, расположенных ниже главной диагонали C++
C++ Найти сумму модулей элементов, расположенных выше главной диагонали матрицы
В сглаженной матрице найти сумму модулей элементов, расположенных ниже главной диагонали C++
Найти сумму модулей элементов квадратной матрицы, расположенных ниже главной диагонали C++
C++ Найти сумму всех элементов динамического массива, расположенных ниже главной диагонали

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

Или воспользуйтесь поиском по форуму:
Andrey027
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 75
24.01.2014, 17:32  [ТС]     Найти сумму элементов, расположенных на главной диагонали. #15
а чтобы выводило веденные значения с клавиатуры на экран например
введ р-р 2
введ эл массива
2
2
2
2

потом выводит
2 2
2 2

сумма = 4

на подобие этого
Yandex
Объявления
24.01.2014, 17:32     Найти сумму элементов, расположенных на главной диагонали.
Ответ Создать тему
Опции темы

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