Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Andrey027
0 / 0 / 1
Регистрация: 26.10.2013
Сообщений: 75
#1

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

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

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

народ помогите сделать задание
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2014, 15:51
Ответы с готовыми решениями:

Найти сумму элементов матрицы, расположенных выше главной диагонали и ниже побочной диагонали
не соображу В среде MS Visual C++ разработать программу, которая формирует...

Найти сумму и произведение элементов кратных 3, расположенных на каждой параллели к главной диагонали и на самой главной
6. Дан массив К(mxm). Найти сумму и произведение элементов кратных 3,...

Найти сумму элементов расположенных выше главной диагонали.
Дан массив размерности 3х3. Найти сумму его элементов, расположенных выше...

Найти сумму элементов матрицы расположенных по главной диагонали
как найти сумму элементов матрицы расположенных по главной диагонали 1 2...

Массив. Найти сумму элементов, расположенных на главной диагонали
Задан двухмерный массив целых чисел А размером N на M. Найти сумму элементов,...

30
cooller
565 / 533 / 280
Регистрация: 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;
}
1
Andrey027
0 / 0 / 1
Регистрация: 26.10.2013
Сообщений: 75
24.01.2014, 16:33  [ТС] #3
А это точно двумерный динамический массив? А то больше всего похоже на одномерный.
0
cooller
565 / 533 / 280
Регистрация: 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];
1
Andrey027
0 / 0 / 1
Регистрация: 26.10.2013
Сообщений: 75
24.01.2014, 16:45  [ТС] #5
А как сделать так чтобы выводило значения (в виде матрицы) введенные с клавиатуры??
0
Extrim88
50 / 50 / 21
Регистрация: 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";
      
            }
         }
0
Andrey027
0 / 0 / 1
Регистрация: 26.10.2013
Сообщений: 75
24.01.2014, 17:04  [ТС] #7
Аего вставлять этот код в конце?
0
Extrim88
50 / 50 / 21
Регистрация: 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];
0
cooller
565 / 533 / 280
Регистрация: 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;
 
}
0
Andrey027
0 / 0 / 1
Регистрация: 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. Что то типа такого.
0
cooller
565 / 533 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
24.01.2014, 17:11 #11
Andrey027, Последний код мой смотри
0
Extrim88
50 / 50 / 21
Регистрация: 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";           
         }
0
Andrey027
0 / 0 / 1
Регистрация: 26.10.2013
Сообщений: 75
24.01.2014, 17:22  [ТС] #13
А надо чтобы в строчку

Добавлено через 3 минуты
Она почему то выволдит неверный ответ когда я ввожу значения
размер 2
значения
2
2
2
2
а ответ в итоге 5
0
Ev_Hyper
Заблокирован
24.01.2014, 17:29 #14
Andrey027, там неточность поменяйте строку:
C++
1
int Sum(1);
на
C++
1
int Sum=0;
0
Andrey027
0 / 0 / 1
Регистрация: 26.10.2013
Сообщений: 75
24.01.2014, 17:32  [ТС] #15
а чтобы выводило веденные значения с клавиатуры на экран например
введ р-р 2
введ эл массива
2
2
2
2

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

сумма = 4

на подобие этого
0
Ev_Hyper
Заблокирован
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
Для продолжения нажмите любую клавишу . . .
0
Andrey027
0 / 0 / 1
Регистрация: 26.10.2013
Сообщений: 75
24.01.2014, 17:37  [ТС] #17
А можете скинуть сам код.
0
Ev_Hyper
Заблокирован
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;
 
}
0
Andrey027
0 / 0 / 1
Регистрация: 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 ==========
0
S_el
2137 / 1667 / 353
Регистрация: 15.12.2013
Сообщений: 6,623
24.01.2014, 17:48 #20
#include <iomanip> напишите.
1
24.01.2014, 17:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2014, 17:48

В массиве А(12, 12) найти сумму элементов расположенных на главной диагонали матрицы
Найти А(12,12) сумма элементов, расположенных на главной диагонали матрицы.

Найти сумму модулей элементов, расположенных выше главной диагонали
Тема: &quot;Анализ производительности алгоритмов&quot;...

Найти сумму отрицательных элементов расположенных на главной диагонали матрицы
Задана матрица A 1.Найти сумму отрицательных элементов расположенных на...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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