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

Подсчитать сумму "серых" элементов, а "черные" сложить только один раз - C++

Восстановить пароль Регистрация
 
Настя223
1 / 1 / 0
Регистрация: 11.04.2014
Сообщений: 51
11.04.2014, 19:40     Подсчитать сумму "серых" элементов, а "черные" сложить только один раз #1
Помогите с заданием, нужно подсчитать сумму "серых" элементов, а "черные" сложить только один раз, чтобы не было двум одинаковых сумм.

Подсчитать сумму "серых" элементов, а "черные" сложить только один раз

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 <stdlib.h>
#include <conio.h>
#include <ctime>
#include <malloc.h>
 using namespace std;
 int main()
 {
     srand((unsigned)time(NULL));
     const int M=5;
     const int N=5;
     int mat[M][N];
     int sum=0, summa=0;
     cout<<"Matrix:\n";
     for(int i=0; i<M; i++)
     {
         for(int j=0; j<N; j++)
          {
              mat[i][j]=rand()%9;
           cout<<mat[i][j]<<" ";
          }
         cout<<"\n";
     }
     for(int i=0; i<M; i++)
     {
         for(int j=0; j<N; j++)
          {
            
              if(i+j==N-1)
              {
                  sum+=mat[i][j];//poboch.
              }
     }}
      cout<<"\nSum poboch. is:\n"<<sum;      
     
     
     for(int i=0; i<M; i++)
     {
         for(int j=0; j<N; j++)
          {
         
         if(i=j){
         summa += mat[i][i];//glav
         
         
        
        }
        }
     }
    cout<<"\nSumma glav. is:\n"<<summa;
     getch();
     return 0;
 }
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2014, 19:40     Подсчитать сумму "серых" элементов, а "черные" сложить только один раз
Посмотрите здесь:

C++ В цикле почему-то проходит по условию только один раз
C++ Элементы массива, которые встречаются только один раз
C++ Цикл выполняется только один раз.
C++ Дана вещественная матрица размерности n * m. Найти общую сумму элементов только тех столбцов, которые имеют хотя бы один нулевой элемент
C++ Как определить переменную только один раз?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
11.04.2014, 19:49     Подсчитать сумму "серых" элементов, а "черные" сложить только один раз #2
Настя223, а в чем затруднение?
Настя223
1 / 1 / 0
Регистрация: 11.04.2014
Сообщений: 51
11.04.2014, 19:52  [ТС]     Подсчитать сумму "серых" элементов, а "черные" сложить только один раз #3
Это код только диагоналей, и то считает он их только по очереди, а мне нужно вот по этой картинке
http://www.picshare.ru/view/4286684/
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
11.04.2014, 20:00     Подсчитать сумму "серых" элементов, а "черные" сложить только один раз #4
Настя223,
в цикле по всем элементам проходите и выполняете вот такое условие
C++
1
if ((i == 0) || (j == 0)||(i==n)||(j==m) ||(i==j)||(i==(n-1-j))) grey+=a[i][j]; else white+=a[i][j]
проверяйте, должно работать
Vavilon757
1 / 1 / 2
Регистрация: 09.04.2014
Сообщений: 14
11.04.2014, 21:11     Подсчитать сумму "серых" элементов, а "черные" сложить только один раз #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <ctime>
#include <malloc.h>
using namespace std;
int main()
{
    setlocale(0,"Russian");
    srand((unsigned)time(NULL));
    const int M = 5;
    const int N = 5;
    int mat[M][N];
    int sum = 0, summa = 0, summa1 = 0;
    cout << "Matrix:\n";
    for (int i = 0; i<M; i++)
    {
        for (int j = 0; j<N; j++)
        {
            mat[i][j] = rand() % 9;
            cout << mat[i][j] << " ";
        }
        cout << "\n";
    }
    for (int i = M - 1, j = 0; i >= 0, j < M; i--, j++)
    {
        summa += mat[j][i];
        summa += mat[0][j];
        summa += mat[j][0];
        summa += mat[j][4];
        summa += mat[4][j];
        summa += mat[j][j];
    }
    summa1 += mat[0][0];
    summa1 += mat[0][4];
    summa1 += mat[4][0];
    summa1 += mat[4][4];
    summa1 += mat[2][2];
    summa -= summa1 *3;
 
    cout << "\nSumma Серые. is:\n" << summa;
    cout << "\nSumma Черные. is:\n" << summa1;
    getch();
    return 0;
}
Yandex
Объявления
11.04.2014, 21:11     Подсчитать сумму "серых" элементов, а "черные" сложить только один раз
Ответ Создать тему
Опции темы

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