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

Определить сумму отрицательных элементов в четных столбцах матрицы - C++

Восстановить пароль Регистрация
 
evke1337
0 / 0 / 0
Регистрация: 12.01.2016
Сообщений: 1
12.01.2016, 21:04     Определить сумму отрицательных элементов в четных столбцах матрицы #1
Заполнить случайными числами матрицу NxM .Определить :
1) сумму отрицательных элементов в четных столбцах;
2) сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.

Есть готовый вариант, но с указанной размерностью массива и некрасивым кодом ( http://h-l-l.ru/publ/9-1-0-16 )

Мой вариант, почему то не работает
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
54
55
56
57
58
59
60
61
62
63
64
65
66
#include<iostream>
#include<vector>
using namespace std;
 
 
void randVect(vector<vector<int>> &mass, int height, int width, int start, int end){
    for (int i = 0; i < height; i++){
        mass.push_back(vector<int>());
        for (int j = 0; j < width; j++){
            mass[i].push_back(rand() % (end - start) + start);
        }
    }
}
void coutVect(vector<vector<int>> &mass){
    for (int i = 0; i < mass.size(); i++){
        cout << endl;
        for (int j = 0; j < mass[i].size(); j++){
            cout << mass[i][j] << " ";
        }
    }
    cout << endl;
}
 
void sumVect(vector<vector<int>> &mass, int x, int y, int j, int i) {
    for (j = 1; j<x; j = j + 2)
    {
        for (i = 0; i<y; i++)
        {
            if (mass[i][j]<0)
            {
                sumVect = mass[i][j] + sumVect;
            }
        }
    }
    cout << "\n Summa=" << sumVect << '\n' << endl;
}
 
 
int main() {
    setlocale(0, "");
    vector < vector<int>> mass;
    int height;
    int width;
    int start;
    int end;
    int sum;
    int x = height;
    int y = width;
    int j;
    int i;
 
    cout << "Введите высоту вектора : " << endl;
    cin >> height;
    cout << "Введите ширину вектора : " << endl;
    cin >> width;
    cout << "Введите начальное значение диапозона : " << endl;
    cin >> start;
    cout << "Введите конечное значение диапозона : " << endl;
    cin >> end;
    randVect(mass, height, width, start, end);
    cout << endl;
    coutVect(mass);
    cout << endl;
    sumVect(mass, x,y,j,i);
    cout << endl;
    system("pause");
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2016, 21:04     Определить сумму отрицательных элементов в четных столбцах матрицы
Посмотрите здесь:

# Дана целочисленная квадратная матрица. Определить: # сумму элементов в тех столбцах, которые не содержат отрицательных элементов # минимум среди су C++
C++ Определить сумму элементов в тех столбцах матрицы, которые не содержат отрицательных элементов
Определить сумму элементов в тех столбцах, которые не содержат отрицательных элементов C++
Определить: 1) сумму элементов в тех столбцах, которые не содержат отрицательных элементов C++
Для каждой матрицы определить количество и сумму положительных элементов, расположенных в четных столбцах C++
Определить сумму элементов в тех столбцах, которые не содержат отрицательных элементов C++
Найти сумму элементов матрицы, стоящих в четных строках и нечетных столбцах C++
C++ Найти сумму элементов заданной матрицы в столбцах не содержащих отрицательных элементов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Андрейка
410 / 214 / 24
Регистрация: 25.03.2009
Сообщений: 717
13.01.2016, 01:57     Определить сумму отрицательных элементов в четных столбцах матрицы #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
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <iostream>
#include <vector>
#include <locale>
#include <cstdlib>
 
using namespace std;
 
typedef vector <int> vec; 
typedef vector <vec> matrix; 
 
void RandVect(matrix &mass, size_t height, size_t width, int start, int end)
{
    for (size_t i = 0; i < height; ++i)
    {
        mass.push_back(vec());
 
        for (size_t j = 0; j < width; ++j)
        {
            mass[i].push_back(rand() % (end - start) + start);
        }
    }
}
 
void CoutVect(const matrix &mass)
{
    for (size_t i = 0; i < mass.size(); ++i)
    {
        cout << endl;
 
        for (size_t j = 0; j < mass[i].size(); ++j)
        {
            cout << mass[i][j] << " ";
        }
    }
 
    cout << endl;
}
 
void SumRow(const matrix &mass, size_t i, int &sum)
{
    for (size_t j = 0 ; j < mass[i].size(); ++j)
    {
        sum += mass[i][j];
    }
}
 
int SumVect(const matrix &mass) 
{
    int sum;
    bool f;
 
    for (size_t i = 0; i < mass.size(); ++i)
    {
        sum = 0;
        f = false;
 
        for (size_t j = 0; j < mass[i].size(); ++j)
        {
            if (f == false && mass[i][j] < 0)
            {
                SumRow(mass, i, sum);
                f = true;
                break;
            }           
        }
        if (f == true) cout << i << " строка " << sum << endl;
    }
}
 
int main(int argc, char *argv[]) 
{
    srand(time(NULL));
 
    matrix m;
 
    RandVect(m, 10, 10, -1, 10);
    CoutVect(m);
    SumVect(m);
    return 0;
}
Yandex
Объявления
13.01.2016, 01:57     Определить сумму отрицательных элементов в четных столбцах матрицы
Ответ Создать тему
Опции темы

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