Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/74: Рейтинг темы: голосов - 74, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 20.06.2012
Сообщений: 8
1

Вычислить сумму элементов выше главной диагонали матрицы

31.07.2012, 14:39. Просмотров 14753. Ответов 6
Метки нет (Все метки)

ввести двумерный массив b [4,4]. вычислить сумму элементов лежать выше главной диагонали матрицы и отобразить на экране.
p. s
помогите пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.07.2012, 14:39
Ответы с готовыми решениями:

Вычислить сумму элементов матрицы выше главной диагонали
Здравствуйте. Помогите решить задание. Нужно вычислить сумму элементов матрицы выше главной...

Вычислить сумму элементов матрицы, расположенных выше главной диагонали
выдает ошибки: Ошибка 1 error LNK2001: неразрешенный внешний символ "_mainCRTStartup"...

Вычислить сумму элементов матрицы, расположенных на главной диагонали и выше нее
Дано задание: Дана действительная квадратная матрица порядка 7. Вычислить сумму тех её...

Вычислить в функции сумму модулей элементов выше главной диагонали матрицы
Вычислить в функции сумму модулей элементов выше главной диагонали матрицы. В головной программе...

6
112 / 112 / 42
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
31.07.2012, 14:59 2
И капсом больше не пишите
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>
 
int main()
{
    int mass[4][4];
 
    //Заполняем массив
    for (int i=0; i!=4;i++)
        for (int t=0;t !=4; t++) {
            system("cls");
            std::cout << "Enter mas[" <<i<<"]["<<t<<"] = ";
            std::cin >> mass[i][t];
        }
 
    int sum(0);
    for (int i=0; i !=4;i++)
        for (int j = i+1;j!=4;j++)
            sum+=mass[i][j];
 
    std::cout << "summ = " << sum << std::endl;
    system("pause");
 
    return 0;
}
Добавлено через 7 минут
вот с функцией
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
#include <iostream>
 
void summ(int (&mas)[4][4]) 
{
    int sum(0);
    for (int i=0; i!= 4; i++)
        for (int j=i+1;j!=4;j++)
            sum+=mas[i][j];
    std::cout << "summ = " << sum << std::endl;
}
 
int main()
{
    int mass[4][4];
 
    //Заполняем массив
    for (int i=0; i!=4;i++)
        for (int t=0;t !=4; t++) {
            system("cls");
            std::cout << "Enter mas[" <<i<<"]["<<t<<"] = ";
            std::cin >> mass[i][t];
        }
 
    summ(mass);
    system("pause");
 
    return 0;
}
1
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
31.07.2012, 15:09 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (i < j) 
{
       // выше диагонали
}
 
if (i > j)
{
      // ниже диагонали
}
 
if (i == j)
{
      // главная диагональ
}
 
if (i + j == N) // N - размер
{
      // вторая диагональ
}
1
Эксперт С++
340 / 304 / 36
Регистрация: 16.06.2009
Сообщений: 486
31.07.2012, 15:10 4
Markys,

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
#include <iostream>
#include <algorithm>
#include <random>
 
#include <boost/multi_array.hpp>
 
const int N = 4;   
 
int main() {
   typedef boost::multi_array <int, 2> matrix_t;
   typedef boost::multi_array_types::index_range range;
   typedef matrix_t::array_view <1>::type matrix_view;
   typedef boost::multi_array_ref <int, 1> array_ref;
   
   std::mt19937 rng;
   std::uniform_int_distribution <int> int_dist(0, 50);
   
   matrix_t matrix(boost::extents[N][N]);
   array_ref matrix_ref(
      matrix.data(),
      boost::extents[matrix.num_elements()]
   );
 
   std::generate(
      matrix_ref.begin(),
      matrix_ref.end(),
      [&int_dist, &rng]() -> int {
            return int_dist(rng);
      }
   );
   
   int sum = 0;
   for (std::size_t index = 0; index < N - 1; index++) {
      matrix_view row_view = matrix[
                                boost::indices[index]
                                [range(index + 1, N)]
                             ];  
      sum = std::accumulate(
               row_view.begin(),
               row_view.end(),
               sum
            );
   }
   std::cout << sum << "\n";  
   for (std::size_t i = 0; i != matrix.size(); ++i) {
      std::copy(
         matrix[i].begin(),
         matrix[i].end(),
         std::ostream_iterator <int>(std::cout, "\t")
      );
      std::cout << '\n';
   }
}
http://liveworkspace.org/code/... b39e8af6c5
2
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
31.07.2012, 15:14 5
Цитата Сообщение от nameless Посмотреть сообщение
Markys,

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
#include <iostream>
#include <algorithm>
#include <random>
 
#include <boost/multi_array.hpp>
 
const int N = 4;   
 
int main() {
   typedef boost::multi_array <int, 2> matrix_t;
   typedef boost::multi_array_types::index_range range;
   typedef matrix_t::array_view <1>::type matrix_view;
   typedef boost::multi_array_ref <int, 1> array_ref;
   
   std::mt19937 rng;
   std::uniform_int_distribution <int> int_dist(0, 50);
   
   matrix_t matrix(boost::extents[N][N]);
   array_ref matrix_ref(
      matrix.data(),
      boost::extents[matrix.num_elements()]
   );
 
   std::generate(
      matrix_ref.begin(),
      matrix_ref.end(),
      [&int_dist, &rng]() -> int {
            return int_dist(rng);
      }
   );
   
   int sum = 0;
   for (std::size_t index = 0; index < N - 1; index++) {
      matrix_view row_view = matrix[
                                boost::indices[index]
                                [range(index + 1, N)]
                             ];  
      sum = std::accumulate(
               row_view.begin(),
               row_view.end(),
               sum
            );
   }
   std::cout << sum << "\n";  
   for (std::size_t i = 0; i != matrix.size(); ++i) {
      std::copy(
         matrix[i].begin(),
         matrix[i].end(),
         std::ostream_iterator <int>(std::cout, "\t")
      );
      std::cout << '\n';
   }
}
http://liveworkspace.org/code/... b39e8af6c5
Паскаль мне в резюме, зачем все это?
1
112 / 112 / 42
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
31.07.2012, 15:15 6
Цитата Сообщение от nameless Посмотреть сообщение
к чему столько кода, в такой задаче ?
0
Эксперт С++
340 / 304 / 36
Регистрация: 16.06.2009
Сообщений: 486
31.07.2012, 15:18 7
Цитата Сообщение от Dr.Urban Посмотреть сообщение
Паскаль мне в резюме, зачем все это?
Экспериментирую с boost::multi_array, ничего более..)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2012, 15:18

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вычислить сумму элементов расположенных ниже главной диагонали, но выше побочной диагонали
Дана целочисленная квадратная матрица размера NxN. Вычислить сумму элементов расположенных ниже...

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

Вычислить сумму элементов , pасположенных на главной диагонали и выше ее
Дана действительная квадpатная матpица поpядка n (n&lt;=8). Вычислить сумму тех ее элементов ,...

Вычислить сумму элементов , pасположенных на главной диагонали и выше ее.
Дана действительная квадpатная матpица поpядка n (n&lt;=8). Вычислить сумму тех ее элементов ,...


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

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

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