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

Сформировать массив из матрицы - C++

Восстановить пароль Регистрация
 
serzhik31987
0 / 0 / 0
Регистрация: 26.03.2012
Сообщений: 3
26.03.2012, 18:03     Сформировать массив из матрицы #1
Дана матрица А(6,7). Сформировать массив В(6), каждый элемент которого есть произведение положительных элементов соответствующего столбца матрицы А.

Дана матрица А(6,7). Сформировать массив В(6), каждый элемент которого есть сумма отрицательных элементов соответствующего столбца матрицы А.

Дана квадратная матрица А(6,6). Подсчитать сумму элементов, лежащих выше главной диагонали.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Algiz
159 / 159 / 13
Регистрация: 23.02.2011
Сообщений: 347
26.03.2012, 18:51     Сформировать массив из матрицы #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Это первая задачка. Если в макросе CMP условие изменишь на "< 0" получишь вторую.

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
#include <iostream>
#include <cmath>
#include <cstdlib>
#define N 7
#define M 6
#define forn(n0,i,n1) for(int i=n0; i<n1; i++)
 
#define CMP(a) (a > 0)? a: 0;
 
using namespace std;
 
int gsum(int(* a)[M], int j)
{
    int sum = 0;
    forn(0,i,N)
        sum += CMP(a[i][j]);
    return sum;
}
 
int main(int argc, char **argv)
{
    int a[N][M], b[M];
    srand(time(0));
    forn(0,i,N)
    {
        forn(0,j,M)
        {
            a[i][j] = (rand() % 100) - 50;
            cout << a[i][j] << ' ';
        }
        cout << endl;
    }
    cout << endl;
    forn(0,i,M)
    {
        b[i] = gsum(a,i);
        cout << b[i] << ' ';
    }
    cout << endl;
    return 0;
}
Добавлено через 8 минут
Третья:
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 <iostream>
#include <cmath>
#include <cstdlib>
#define N 6
#define forn(n0,i,n1) for(int i=n0; i<n1; i++)
 
using namespace std;
 
int main(int argc, char **argv)
{
    int a[N][N];
    int sum = 0;
    srand(time(0));
    forn(0,i,N)
    {
        forn(0,j,N)
        {
            a[i][j] = rand() % 10;
            cout << a[i][j] << ' ';
            sum += (j > i)? a[i][j]: 0;
        }
        cout << endl;
    }
    cout << sum << endl;
    return 0;
}
serzhik31987
0 / 0 / 0
Регистрация: 26.03.2012
Сообщений: 3
26.03.2012, 21:05  [ТС]     Сформировать массив из матрицы #3
спасибо большое но в первой задаче говорится о произведении положительных элементов, а во второй о сумме отрицательных))
Algiz
159 / 159 / 13
Регистрация: 23.02.2011
Сообщений: 347
27.03.2012, 18:10     Сформировать массив из матрицы #4
измени
C++
1
sum += CMP(a[i][j]);
на
C++
1
sum *= CMP(a[i][j]);
и инициализируй sum в 1 и будет тебе произведение
Yandex
Объявления
27.03.2012, 18:10     Сформировать массив из матрицы
Ответ Создать тему
Опции темы

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