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

Произведение парных чисел первого столбца матрицы - C++

Восстановить пароль Регистрация
 
aimbat
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 81
13.12.2013, 23:10     Произведение парных чисел первого столбца матрицы #1
помогите написать функцию пользователя, которая находит произведение парных отрицательных чисел первого столбца матрицы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2013, 23:10     Произведение парных чисел первого столбца матрицы
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
katsidelin
 Аватар для katsidelin
60 / 21 / 2
Регистрация: 15.11.2013
Сообщений: 112
Записей в блоге: 3
14.12.2013, 20:44     Произведение парных чисел первого столбца матрицы #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
// [url]http://www.cyberforum.ru/cpp-beginners/thread1040576.html[/url]
 
/*
 *  Произведение парных чисел первого столбца матрицы
 * помогите написать функцию пользователя, которая находит произведение парных отрицательных чисел первого столбца матрицы.
 */
 
#include <iostream>
 
using namespace std;
 
int main(void)
{
    const short unsigned int SumI = 4; // Количество строк.
    const short unsigned int SumJ = 4; // Количество столбцов.
 
    double Matrix [SumI] [SumJ]; // С точки зрения программы, на сколько я знаю не важно, что считать строками, а что столбцами.
    Matrix [0] [0] = -15.2;
    Matrix [0] [1] = -5.2;
    Matrix [0] [2] = 4.7;
    Matrix [0] [3] = 0.125;
 
    Matrix [1] [0] = -5.2;
    Matrix [1] [1] = 7.3;
    Matrix [1] [2] = 4.36;
    Matrix [1] [3] = -12.0;
 
    Matrix [2] [0] = -5.2;
    Matrix [2] [1] = 9.33;
    Matrix [2] [2] = 0.0;
    Matrix [2] [3] = 6.0;
 
    Matrix [3] [0] = -15.2;
    Matrix [3] [1] = 2.63;
    Matrix [3] [2] = -9.812;
    Matrix [3] [3] = 4.5;
 
//      Судя по условию, нужно найти среди чисел -15.2, -5.2, -5.2, -15.2 парный отрицательные,
// перемножить их и вывести результат.
 
    double Result = 0.0; // Переменная для результата.
 
    for (short unsigned int x = 0, y = 1; x< SumI; x++)
    {
        if ( Matrix [x] [0] < 0)
        {
            Result = Matrix [x] [0];
 
            while (   Matrix [y] [0]   )
            {
                if (  Matrix [x] [0] == Matrix [y] [0] && x < y  )
                {
                    Result *= Matrix [y] [0];
                    cout << "x = " << x << "; y = " << y << "; Result = x*y = " << Result << endl;
                };
                y++;
            };
        };
        y=x+1;
    };
 
 
    return 0;
}
Программа выводит правильный результат только если парных отрицательных чисел по два.
В противном случае, я пока не знаю, как изменить код, чтобы выводить только нужные данные.

Добавлено через 11 минут
Уже немного усовершенствовал код, но не избавился от дублирования поиска:
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
// [url]http://www.cyberforum.ru/cpp-beginners/thread1040576.html[/url]
 
/*
 *  Произведение парных чисел первого столбца матрицы
 * помогите написать функцию пользователя, которая находит произведение парных отрицательных чисел первого столбца матрицы.
 */
 
#include <iostream>
 
using namespace std;
 
int main(void)
{
    const short unsigned int SumI = 4; // Количество строк.
    const short unsigned int SumJ = 4; // Количество столбцов.
 
    double Matrix [SumI] [SumJ]; // С точки зрения программы, на сколько я знаю не важно, что считать строками, а что столбцами.
    Matrix [0] [0] = -15.2;
    Matrix [0] [1] = -5.2;
    Matrix [0] [2] = 4.7;
    Matrix [0] [3] = 0.125;
 
    Matrix [1] [0] = -15.2;
    Matrix [1] [1] = 7.3;
    Matrix [1] [2] = 4.36;
    Matrix [1] [3] = -12.0;
 
    Matrix [2] [0] = -5.2;
    Matrix [2] [1] = 9.33;
    Matrix [2] [2] = 0.0;
    Matrix [2] [3] = 6.0;
 
    Matrix [3] [0] = -15.2;
    Matrix [3] [1] = 2.63;
    Matrix [3] [2] = -9.812;
    Matrix [3] [3] = 4.5;
 
//      Судя по условию, нужно найти среди чисел -15.2, -15.2, -5.2, -15.2 парный отрицательные,
// перемножить их и вывести результат.
 
    double Result = 0.0; // Переменная для результата.
    bool z = false; // Если нашлась пара - присваиваем true.
 
    for (short unsigned int x = 0, y = 1; x< SumI; x++)
    {
        if ( Matrix [x] [0] < 0)
        {
            Result = Matrix [x] [0];
 
            while (   Matrix [y] [0]   )
            {
                if (  Matrix [x] [0] == Matrix [y] [0] && x < y  )
                {
                    Result *= Matrix [y] [0];
                    z=true;
                };
                y++;
            };
            if ( z ) cout << Result << endl;
        };
        y=x+1;
        z=false;
    };
 
 
    return 0;
}
Добавлено через 2 часа 58 минут
Задача решена!
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
81
82
83
84
85
86
87
// [url]http://www.cyberforum.ru/cpp-beginners/thread1040576.html[/url]
 
/*
 *  Произведение парных чисел первого столбца матрицы
 * помогите написать функцию пользователя, которая находит произведение парных отрицательных чисел первого столбца матрицы.
 */
 
#include <iostream>
 
using namespace std;
 
int main(void)
{
    const short unsigned int SumI = 4; // Количество строк.
    const short unsigned int SumJ = 4; // Количество столбцов.
 
    struct Numbers
    {
        double FinedNumber;
        short unsigned int CountOfNumbers;
        Numbers *NextNumbers;
    };
 
    double Matrix [SumI] [SumJ]; // С точки зрения программы, на сколько я знаю не важно, что считать строками, а что столбцами.
    Matrix [0] [0] = -15.2;
    Matrix [0] [1] = -5.2;
    Matrix [0] [2] = 4.7;
    Matrix [0] [3] = 0.125;
 
    Matrix [1] [0] = -15.2;
    Matrix [1] [1] = 7.3;
    Matrix [1] [2] = 4.36;
    Matrix [1] [3] = -12.0;
 
    Matrix [2] [0] = -5.2;
    Matrix [2] [1] = 9.33;
    Matrix [2] [2] = 0.0;
    Matrix [2] [3] = 6.0;
 
    Matrix [3] [0] = -15.2;
    Matrix [3] [1] = 2.63;
    Matrix [3] [2] = -9.812;
    Matrix [3] [3] = 4.5;
 
    double Result = 0.0; // Переменная для результата.
    bool z = false; // Если нашлась пара - присваиваем true.
    Numbers *g = new Numbers;
    bool u = true; // Если число уже проверялось, то false.
 
    for (short unsigned int x = 0, y = 1; x< SumI; x++)
    {
        for ( short unsigned int r = 0; r <= sizeof(g); r++)
        {
            if (Matrix [x] [0] == g[r].FinedNumber) u = false;
        };
 
        if (u) if ( Matrix [x] [0] < 0)
        {
            Result = Matrix [x] [0];
 
            while (   Matrix [y] [0]   )
            {
                if (  Matrix [x] [0] == Matrix [y] [0] && x < y  )
                {
                    Result *= Matrix [y] [0];
                    z=true;
                    g->FinedNumber = Matrix [x] [0];
                    g->CountOfNumbers++;
                };
                y++;
            };
            if ( z )
            {
                cout << Result << endl;
                g->NextNumbers;
            };
        };
        y=x+1; // Переход далее.
        z=false; // Сбрасываем параметр.
        u=true; // Сбрасываем параметр.
 
 
    };
 
 
    return 0;
}
Yandex
Объявления
14.12.2013, 20:44     Произведение парных чисел первого столбца матрицы
Ответ Создать тему
Опции темы

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