Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 57, средняя оценка - 4.84
Markys
0 / 0 / 0
Регистрация: 20.06.2012
Сообщений: 8
#1

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

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

ввести двумерный массив b [4,4]. вычислить сумму элементов лежать выше главной диагонали матрицы и отобразить на экране.
p. s
помогите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2012, 14:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить сумму элементов выше главной диагонали матрицы (C++):

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

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

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

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

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

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

6
DaskOFF
112 / 112 / 9
Регистрация: 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
Dr.Urban
63 / 58 / 7
Регистрация: 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
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 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/c36e3f30cabf4874b03e1db39e8af6c5
2
Dr.Urban
63 / 58 / 7
Регистрация: 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/c36e3f30cabf4874b03e1db39e8af6c5
Паскаль мне в резюме, зачем все это?
1
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
31.07.2012, 15:15 #6
Цитата Сообщение от nameless Посмотреть сообщение
к чему столько кода, в такой задаче ?
0
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
31.07.2012, 15:18 #7
Цитата Сообщение от Dr.Urban Посмотреть сообщение
Паскаль мне в резюме, зачем все это?
Экспериментирую с boost::multi_array, ничего более..)
0
31.07.2012, 15:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2012, 15:18
Привет! Вот еще темы с ответами:

Найти сумму элементов матрицы, лежащих выше главной диагонали - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using namespace std; int RandomMas(int **a, const int n, const int...

Найти сумму элементов матрицы ниже главной диагонали, и произведение элементов выше нее - C++
Добрый день, помогите найти ошибку в коде, вот задание: В матрице размером n х n найти сумму элементов, лежащих ниже главной...

Найти сумму модулей элементов, расположенных выше главной диагонали матрицы - C++
for( int i = 0; i &lt; n; i++ ) for( int j = i+1; j &lt; n; j++ ) s += abs(array); Так он находит сумму модулей элементов ниже главной...

Найти сумму модулей элементов матрицы, находящихся выше главной диагонали - C++
Помогите сделать программу. Дано целочисленная матрица. Определить: - сумму модулей элементов, находящихся выше главной диагонали ...


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

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

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