Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2016, 21:58   #1
Joesidorov
Пользователь
 
Регистрация: 09.12.2015
Сообщений: 26
По умолчанию Перемножить все отрицательные элементы матрицы C++

Привет!!

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

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

код:

Код:
#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;
}

Последний раз редактировалось Joesidorov; 04.01.2016 в 22:24. Причина: неправильно
Joesidorov вне форума Ответить с цитированием
Старый 04.01.2016, 22:51   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

в который раз отчаянно советую не пихать всю программу в main()!
ну читать же невозможно, ёмаё!
Ну зачем так делать-то? Для того, чтобы было неудобно?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В массиве необходимо все отрицательные элементы умножить на квадрат его наименьшего элемента, а все неотрицательные элементы на кв dvpvitas Паскаль, Turbo Pascal, PascalABC.NET 3 18.06.2015 05:28
выписать отрицательные элементы из матрицы maxlmys C++ Builder 0 08.12.2014 20:00
Дана матрица А(6,6) определить отрицательные элементы в строках матрицы А SSarox Паскаль, Turbo Pascal, PascalABC.NET 7 27.03.2014 19:44
Вывести номер столбца в котором все элементы отрицательные. Jully19 Помощь студентам 7 22.06.2011 19:34
в начале все отрицательные, затем все положительные элементы в матрице motaro Паскаль, Turbo Pascal, PascalABC.NET 2 07.03.2008 19:16