0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 63

Перемножить все отрицательные элементы матрицы

10.12.2015, 19:59. Показов 1964. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!!

Как сделать, если в строке встречается все отрицательные элементы то произошло их умножение?
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
#include <iostream> 
#include <time.h>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
int option, m, n;
cout << "Enter row size: ";
cin >> n;
cout << "Enter columm size: ";
cin >> m;
cout << endl << "Enter Your Choice: " << endl << endl;
cout << "If you want to enter data yourself, Enter 1 " << endl << endl;
cout << "If you want to have data automatically, Enter 2 " << endl;
cout << ">>> ";
cin >> option;
 
int **pp = new int*[n];
for (int i = 0; i < n; i++)
pp[i] = new int[m];
 
if (option == 1)
{
cout << "Enter element: " << endl;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
cin >> pp[i][j];
cout << endl;
 
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
cout << pp[i][j] << ' ';
cout << endl;
}
}
 
else if (option == 2)
{
srand(time(NULL));
cout << "Generated array: " << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) cout << (pp[i][j] = rand() % 100) << ' ';
cout << endl;
}
}
 
for (int i = 0; i < n; i++)
delete pp[i];
 
delete[] pp;
 
cout << endl;
system("pause");
return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.12.2015, 19:59
Ответы с готовыми решениями:

Циклы: заменить все отрицательные элементы матрицы нулями, а все положительные - единицами
Помогите с заданием. Цель работы: Приобретение навыков использования операторов цикла while, do while и for. Задание: Ввести...

Заменить все отрицательные элементы матрицы на ноль
Из произвольной матрицы (3х4) составить новую матрицу ,где все отрицательные элементы будут равны 0. Не могу додуматься как написать...

Все отрицательные элементы матрицы заменить числом 1
Что делать не пойму, помогите пожалуйста. На самом начальном изучении мы, так что код самый начальный и простой. Учим только строки начали....

20
62 / 62 / 55
Регистрация: 18.10.2014
Сообщений: 190
10.12.2015, 20:10
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for (int i = 0; i < n; i++) {
int mult=1;
for (int j = 0; j < m; j++) 
{
    if(pp[i][j]<0)
        mult*=pp[i][j];
    else
        mult=0;
}
if(mult)
{cout << mult<< ' ';
cout<<endl;
}}
Добавь перед очищением памяти
0
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 63
10.12.2015, 20:41  [ТС]
Извини,задача такая:вычислит умножение элементов в тех строках которые содержат все отрицательные элементы.
0
62 / 62 / 55
Регистрация: 18.10.2014
Сообщений: 190
11.12.2015, 11:00
Лучший ответ Сообщение было отмечено gru74ik как решение

Решение

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
#include <iostream> 
#include <time.h>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
int option, m, n;
cout << "Enter row size: ";
cin >> n;
cout << "Enter columm size: ";
cin >> m;
cout << endl << "Enter Your Choice: " << endl << endl;
cout << "If you want to enter data yourself, Enter 1 " << endl << endl;
cout << "If you want to have data automatically, Enter 2 " << endl;
cout << ">>> ";
cin >> option;
 
int **pp = new int*[n];
for (int i = 0; i < n; i++)
pp[i] = new int[m];
 
if (option == 1)
{
cout << "Enter element: " << endl;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
cin >> pp[i][j];
cout << endl;
 
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
cout << pp[i][j] << ' ';
cout << endl;
}
for (int i = 0; i < n; i++) {
int mult=1;
for (int j = 0; j < m; j++) 
{
    if(pp[i][j]<0)
        mult*=pp[i][j];
    else
        mult=0;
}
if(mult)
{cout <<"V stroke vse otrishatelnye 4isla :  "<<i<<"  ux proizvedenie  :"<< mult<< ' ';
cout<<endl;
}}
}
 
else if (option == 2)
{
srand(time(NULL));
cout << "Generated array: " << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) cout << (pp[i][j] = rand() % 100) << ' ';
cout << endl;
}
}
 
for (int i = 0; i < n; i++)
delete pp[i];
 
delete[] pp;
 
cout << endl;
system("pause");
return 0;
}
Так я и это сделал
0
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 63
11.12.2015, 22:37  [ТС]
Спасибо Тебе за помощь!
0
 Аватар для m1Rr0r
250 / 232 / 46
Регистрация: 05.02.2010
Сообщений: 3,288
23.12.2015, 04:20
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
for(int i = 0; i < n; ++i) {
    bool neg = true;
    for(int j = 0; j < m && neg; ++j) {
        if(a[i][j] >= 0) neg = false;
    }
    if(neg) {
        // Умножаем элементы строки
        //for(int j = 0; j < m; ++j)     
    }
}
0
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 63
23.12.2015, 23:35  [ТС]
Вот у меня такое задание: В двухмерном массиве вычислить произведение в тех строках в которых нет ни одного позитивного элемента.
0
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 63
04.01.2016, 21:25  [ТС]
Привет!!

Почему то выбирая ("If you want to have data automatically, Enter 2 ") не работает Sum .Пожалуйста поправьте.

Задание: (Перемножить все отрицательные элементы матрицы).

код:
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
#include <iostream>
#include <time.h>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
    int option, n, m, mult, first_diap, end_diap;
    cout << "Enter row size: ";
    cin >> n;
    cout << "Enter columm size: ";
    cin >> m;
    cout << endl << "Enter Your Choice: " << endl << endl;
    cout << "If you want to enter data yourself, Enter 1 " << endl << endl;
    cout << "If you want to have data automatically, Enter 2 " << endl;
    cout << ">>> ";
    cin >> option;
 
    int **pp = new int*[n];
    for (int i = 0; i < n; i++)
        pp[i] = new int[m];
 
    if (option == 1)
    {
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                cout << "Enter element: " << endl;
                cin >> pp[i][j];
            }
        }
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
                cout << pp[i][j] << ' ';
            cout << endl;
        }
    }
    else if (option == 2)
    {
        cout << "Enter first element: ";
        cin >> first_diap;
        cout << endl << "Enter last element: ";
        cin >> end_diap;
        srand(time(NULL));
        cout << "Generated array: " << endl;
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                pp[i][j] = rand() % (end_diap - first_diap + 1) + first_diap;
                cout << ' ' << pp[i][j];
            } cout << endl;
        }
    }
    mult = 1;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (pp[i][j] < 0)
                mult *= pp[i][j];
            else
                mult = 0;
        }
        if (mult)
        {
            cout << "Sum: " << mult;
            cout << endl;
        }
    }
    for (int i = 0; i < n; i++)
        delete pp[i];
 
    delete[] pp;
 
    cout << endl;
    system("pause");
    return 0;
}
Миниатюры
Перемножить все отрицательные элементы матрицы  
0
505 / 317 / 236
Регистрация: 18.02.2013
Сообщений: 754
04.01.2016, 21:39
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    mult = 1;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (pp[i][j] < 0)
                mult *= pp[i][j];
            
        }
        
    }if (mult)
        {
            cout << "Sum: " << mult;
            cout << endl;
        }
0
62 / 62 / 55
Регистрация: 18.10.2014
Сообщений: 190
04.01.2016, 21:42
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <time.h>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
    int option, n, m, mult, first_diap, end_diap;
    cout << "Enter row size: ";
    cin >> n;
    cout << "Enter columm size: ";
    cin >> m;
    cout << endl << "Enter Your Choice: " << endl << endl;
    cout << "If you want to enter data yourself, Enter 1 " << endl << endl;
    cout << "If you want to have data automatically, Enter 2 " << endl;
    cout << ">>> ";
    cin >> option;
 
    int **pp = new int*[n];
    for (int i = 0; i < n; i++)
        pp[i] = new int[m];
 
    if (option == 1)
    {
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                cout << "Enter element: " << endl;
                cin >> pp[i][j];
            }
        }
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
                cout << pp[i][j] << ' ';
            cout << endl;
        }
    }
    else if (option == 2)
    {
        cout << "Enter first element: ";
        cin >> first_diap;
        cout << endl << "Enter last element: ";
        cin >> end_diap;
        srand(time(NULL));
        cout << "Generated array: " << endl;
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                pp[i][j] = rand() % (end_diap - first_diap + 1) + first_diap;
                cout << ' ' << pp[i][j];
            } cout << endl;
        }
    }
    mult = 1;
    bool a=0;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (pp[i][j] < 0)
           {     mult *= pp[i][j];
            a=1;
            }
        }
    }
    if (a)
        {
            cout << "Sum: " << mult;
            cout << endl;
        }
    for (int i = 0; i < n; i++)
        delete pp[i];
 
    delete[] pp;
 
    cout << endl;
    system("pause");
    return 0;
}


Добавлено через 55 секунд

Добавлено через 1 минуту
Но mult всегда же будет верно и всегда будет выводится даже если нет положительных
0
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 63
04.01.2016, 21:52  [ТС]
Смотри, Все равно неправильно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    }
    mult = 1;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (pp[i][j] < 0)
                mult *= pp[i][j];
 
        }
 
    }
    if (mult)
    {
        cout << "Sum: " << mult;
        cout << endl;
    }
    for (int i = 0; i < n; i++)
        delete pp[i];
Миниатюры
Перемножить все отрицательные элементы матрицы  
0
505 / 317 / 236
Регистрация: 18.02.2013
Сообщений: 754
04.01.2016, 22:03
JoeSidorov, все корректно считается, на калькуляторе посчитайте
0
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 63
04.01.2016, 22:13  [ТС]
по строкам отдельно можно?
0
505 / 317 / 236
Регистрация: 18.02.2013
Сообщений: 754
04.01.2016, 22:14
JoeSidorov, произведение по строкам отрицательных?
0
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 63
04.01.2016, 22:20  [ТС]
да по строкам
0
505 / 317 / 236
Регистрация: 18.02.2013
Сообщений: 754
04.01.2016, 22:27
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 for (int i = 0; i < n; i++)
    {
        bool f=false;
        int mult = 1;
        for (int j = 0; j < m; j++)
        {
            if (pp[i][j] < 0)
                {
                mult *= pp[i][j];f=true;}
 
        }
        if (f)
        {
            cout << "Sum: " << mult;
            cout << endl;
        }
    }
0
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 63
04.01.2016, 23:02  [ТС]
спасибо тебе большое, нарисовал блоксхему, Как думаешь будет правильно?
Миниатюры
Перемножить все отрицательные элементы матрицы  
0
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 63
05.01.2016, 01:07  [ТС]
после: cout << "Sum: " << mult куда то надо идти?

Добавлено через 1 час 59 минут
Как исправить чтобы произведение произошло только тогда если все элементы в строке отрицательные?Cпасибо!!!!
0
505 / 317 / 236
Регистрация: 18.02.2013
Сообщений: 754
05.01.2016, 08:54
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 for (int i = 0; i < n; i++)
    {
        bool f=true;
        int mult = 1;
        for (int j = 0; j < m; j++)
        {
            if (pp[i][j] < 0)
                {
                mult *= pp[i][j]
                }
            else
                {
                f=false;
                break;
                }
 
        }
        if (f)
        {
            cout << "Sum: " << mult;
            cout << endl;
        }
    }
0
505 / 317 / 236
Регистрация: 18.02.2013
Сообщений: 754
05.01.2016, 09:21
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

блок схема к последнему коду
Миниатюры
Перемножить все отрицательные элементы матрицы  
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.01.2016, 09:21
Помогаю со студенческими работами здесь

Найти и вывести все отрицательные элементы матрицы
Дана матрица целых чисел (задается пользователем). Найти и вывести все отрицательные элементы матрицы. Буду премного благодарен )

Все отрицательные элементы матрицы записать в одномерный массив.
Дан двумерный массив размером mxn, заполненный целыми числами. Все его отрицательные элементы записать в одномерном массиве Заранее...

Заменить все отрицательные элементы матрицы на максимальный элемент
Дана вещественная матрица h(i,j). Составить программу замены всех отрицательных элементов матрицы на элемент, имеющий максимальное значение.

В парных строках матрицы заменить все отрицательные элементы на ноль
помогите пожалуйста с задачей на С++ строки 6 столбцов 4, b = (sqrt (i)-sqrt (j)) / a в парных строках матрицы заменить все...

В четных строках матрицы заменить все отрицательные элементы на ноль
в четных строках матрицы заменить все отрицательные элементы на ноль: исходный массив А 6 строк 4 столбцов преобразование массива А в...


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

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

Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru