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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Andrey027
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 75
24.01.2014, 15:51     Найти сумму элементов, расположенных на главной диагонали. #1
Массив в памяти разместить динамически (с использованием операций new и delete). Найти сумму элементов, расположенных на главной диагонали

народ помогите сделать задание
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2014, 15:51     Найти сумму элементов, расположенных на главной диагонали.
Посмотрите здесь:

C++ [C++] Найти сумму модулей элементов, расположенных выше главной диагонали
Найти сумму элементов расположенных выше главной диагонали. C++
C++ даны три массива A[6,6], B[6,6],C[6,6]. найти сумму максимальных элементов, расположенных на главной диагонали
C++ Массив. Найти сумму элементов, расположенных на главной диагонали
Найти сумму отрицательных элементов расположенных на главной диагонали матрицы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 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
 Аватар для cooller
564 / 532 / 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
 Аватар для 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
 Аватар для 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
 Аватар для cooller
564 / 532 / 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
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
24.01.2014, 17:11     Найти сумму элементов, расположенных на главной диагонали. #11
Andrey027, Последний код мой смотри
Extrim88
 Аватар для 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
 Аватар для Ev_Hyper
1808 / 1629 / 435
Регистрация: 15.12.2013
Сообщений: 5,791
24.01.2014, 17:29     Найти сумму элементов, расположенных на главной диагонали. #14
Andrey027, там неточность поменяйте строку:
C++
1
int Sum(1);
на
C++
1
int Sum=0;
Andrey027
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 75
24.01.2014, 17:32  [ТС]     Найти сумму элементов, расположенных на главной диагонали. #15
а чтобы выводило веденные значения с клавиатуры на экран например
введ р-р 2
введ эл массива
2
2
2
2

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

сумма = 4

на подобие этого
Ev_Hyper
 Аватар для Ev_Hyper
1808 / 1629 / 435
Регистрация: 15.12.2013
Сообщений: 5,791
24.01.2014, 17:34     Найти сумму элементов, расположенных на главной диагонали. #16
Andrey027, чем вам не нравится тот вариант, который у вас уже есть:
Код
Enter size:2
Enter array:
2
2
2
2
Array:
    2    2
    2    2
Sum of the main diagonal = 5
Для продолжения нажмите любую клавишу . . .
Andrey027
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 75
24.01.2014, 17:37  [ТС]     Найти сумму элементов, расположенных на главной диагонали. #17
А можете скинуть сам код.
Ev_Hyper
 Аватар для Ev_Hyper
1808 / 1629 / 435
Регистрация: 15.12.2013
Сообщений: 5,791
24.01.2014, 17:38     Найти сумму элементов, расположенных на главной диагонали. #18
cooller_94 его уже выкладывал, но:
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 = 0;
    for(size_t i=0; i<N; i++)
        Sum+=mas[i][i];
    std::cout<<"Sum of the main diagonal = "<<Sum<<std::endl;
 
}
Andrey027
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 75
24.01.2014, 17:42  [ТС]     Найти сумму элементов, расположенных на главной диагонали. #19
У меня выводит ошибки.
Вот сам код
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
int main ()
{
   size_t N;
    std::cout<<"Vvedite razmer massiva:";
    std::cin>>N;
    int ** mas = new int *[N];
    std::cout<<"Vvedite znacheniya massiva:\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<<"Massiv:\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 = 0;
    for(size_t i=0; i<N; i++)
        Sum+=mas[i][i];
    std::cout<<"Summa glavnoi diagonali = "<<Sum<<std::endl;
 getch();
    return 0;
}
Вот ошибки
XML
1
2
3
4
5
6
7
8
1>------ Построение начато: проект: ekz, Конфигурация: Debug Win32 ------
1>Компиляция...
1>ekz.cpp
1>c:\users\cazhu_000\desktop\ekz\ekz\ekz.cpp(22) : error C2039: setw: не является членом "std"
1>c:\users\cazhu_000\desktop\ekz\ekz\ekz.cpp(22) : error C3861: setw: идентификатор не найден
1>Журнал построения был сохранен в "file://c:\Users\cazhu_000\Desktop\ekz\ekz\Debug\BuildLog.htm"
1>ekz - ошибок 2, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2014, 17:48     Найти сумму элементов, расположенных на главной диагонали.
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
S_el
1908 / 1503 / 296
Регистрация: 15.12.2013
Сообщений: 5,921
24.01.2014, 17:48     Найти сумму элементов, расположенных на главной диагонали. #20
#include <iomanip> напишите.
Yandex
Объявления
24.01.2014, 17:48     Найти сумму элементов, расположенных на главной диагонали.
Ответ Создать тему
Опции темы

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