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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Crank13
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 13
#1

Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение - C++

08.02.2014, 19:17. Просмотров 908. Ответов 25
Метки нет (Все метки)

Задача:
Ввести матрицу размером 10*5.
Для не отрицательных элементов вычислить их произведение.
вообще не понимаю как это сделать помогите плз разобраться
заранее большое спс
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2014, 19:17     Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение
Посмотрите здесь:
Pascal в C++. Максимальное произведение двух элементов для последовательности целых неотрицательных чисел C++
Ввести матрицу и определить произведение полож. элементов ниже главной диагонали C++
Ввести матрицу размером NxM. C++
Из заданной матрицы A размером получить матрицу В размером по правилу: первый столбец состоит из положительных элементов, второй – из отрицате C++
C++ Найти сумму неотрицательных и произведение положительных элементов массива
Скалярное произведение строки с наибольшим количеством неотрицательных элементов на i-ый столбец C++
Для матриццы размером n x m вычислить сумму элементов матрицы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,186
Завершенные тесты: 1
09.02.2014, 11:05     Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение #16
Сделайте так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 using namespace std;
 
int main()
 {
    int matr[10][5];
    int p=1;
 
    for(int i=0;i<10;i++)
    for(int j=0;j<5;j++)
    {
        cout<<"Enter matr["<<i<<"]["<<j<<"]:";// подсказка оператору, что надо вводить
        cin>>matr[i][j];
    }
 
    for(int i=0;i<10;i++)
    for(int j=0;j<5;j++)
        if(matr[i][j]>=0)   p*=matr[i][j];
 
    cout <<"Proizvedenie="<< p<<endl;
    system("pause");
 }
Crank13
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 13
09.02.2014, 11:15  [ТС]     Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение #17
УРА!!! Заработала) теперь в цмд предлагает ввести матрицу так может ее проще вписать в программу? в задаче указан размер матрицы 5 на 10
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,186
Завершенные тесты: 1
09.02.2014, 11:22     Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение #18
Цитата Сообщение от Crank13 Посмотреть сообщение
так может ее проще вписать в программу
Вы уж сами определитесь, откуда надо брать матрицу.
Обычно предполагается, что ее вводит оператор.
Можно присвоить начальные значения, используя такой синтаксис
C
1
2
3
4
5
int matr[10][5]={
{1.0,2.0,3.0,4.0,5.0},// числа 1-ой строки
....и т.д.
{ числа 10-й строки}
};
можно присвоить случайные значения
C
1
2
3
for(i=0;i<10;i++)
for(j=0;j<5;j++)
    matr[i][j]=rand();
Crank13
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 13
09.02.2014, 12:58  [ТС]     Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение #19
C++ (Qt)
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
#include "StdAfx.h"
#include <iostream>
 using namespace std;
 
int main()
 {
   int matr[10][5]={
{1.8,5.0,3.0,4.0,5.0},// числа 1-ой строки
{2.7,2.0,3.0,4.0,5.0},
{3.6,2.0,3.0,4.0,5.0},
{4.0,2.0,3.0,4.0,5.0},
{5.1,2.0,3.0,4.0,5.0},
{6.2,2.0,3.0,4.0,5.0},
{7.3,2.0,3.0,4.0,5.0},
{8.4,2.0,3.0,4.0,5.0},
{0.9,2.0,3.0,4.0,5.0},
{9.5,2.0,3.0,4.0,5.0}
};
 
 
    for(int i=0;i<10;i++)
    for(int j=0;j<5;j++)
                    {
      cout<<"Enter matr["<<i<<"]["<<j<<"]:";// подсказка оператору, что надо вводить
                cin>>matr[i][j];
    }
 
    for(int i=0;i<10;i++)
    for(int j=0;j<5;j++)
                if(matr[i][j]>=0)   p*=matr[i][j];
 
    cout <<"Proizvedenie="<< p<<endl;
    system("pause");
 }
или я вообще не понимаю нечего или все таки сильно разнятся версии визион студио

Добавлено через 1 минуту
если я сделаю эту задачу до сессии выучу книгу по программированию наизусть со знаками препинания)

Добавлено через 17 минут
тут пишет компилятор пишет что р необьявленный индефикатор

Добавлено через 46 секунд
а рандом непойму куда ставить(((

Добавлено через 14 минут
и почему получается 10 на 10 если размер указан как 10 на 5 в задаче

Добавлено через 11 минут
C++ (Qt)
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 "StdAfx.h"
#include <iostream>
 using namespace std;
 
int main()
 {
    int matr[10][5];
    int p=1;
 
    for(int i=0;i<10;i++)
    for(int j=0;j<5;j++)
    {
        for(i=0;i<10;i++)
for(j=0;j<5;j++)
    matr[i][j]=rand();
        //cout<<"Enter matr["<<i<<"]["<<j<<"]:";// подсказка оператору, что надо вводить
        cin>>matr[i][j];
    }
 
    for(int i=0;i<10;i++)
    for(int j=0;j<5;j++)
        if(matr[i][j]>=0)   p*=matr[i][j];
 
    cout <<"Proizvedenie="<< p<<endl;
    system("pause");
 }
а так опять пустой цмд выходит
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,186
Завершенные тесты: 1
09.02.2014, 13:17     Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение #20
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
 {
    int matr[10][5];
    for(int i=0;i<10;i++)
    for(int j=0;j<5;j++)
        matr[i][j]=rand();
    int p=1;
    for(int i=0;i<10;i++)
    for(int j=0;j<5;j++)
        if(matr[i][j]>=0)
            p*=matr[i][j];
    cout<<"Proizvedenie="<<p<<endl;
    system("pause");
 }
Crank13
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 13
09.02.2014, 13:21  [ТС]     Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение #21
ужасно не понятно все куда что ставить( то работает то не работает уже неделю бьюсь над задачей(голова кругом идет
может кто то может объяснить что опять не так
доделаю пойду книгу дочитывать по программированию мб в следующих главах все понятней станет

Добавлено через 2 минуты
но разве произведения должно быть постоянно ноль?
и эта матрица выходит размером 10 на 5?
почему не показывает саму матрицу?
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,186
Завершенные тесты: 1
09.02.2014, 13:25     Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение #22
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> // библиотека потокового ввода-вывода
#include <stdlib.h> // отсюда берем функцию генерации случайных чисел rand()
using namespace std; // делаем доступными переменные из <iostream>
int main()
 {
    int matr[10][5];
    for(int i=0;i<10;i++) // перебираем строки по переменной i
    for(int j=0;j<5;j++) // перебираем столбцы по переменной j
        matr[i][j]=rand(); // присваиваем очередному элементу массива случайное значение
    int p=1;                 // сюда будем писать произведение. Единица потому, что умножение на 1 не изменяет результат произведения 
    for(int i=0;i<10;i++)
    for(int j=0;j<5;j++)
        if(matr[i][j]>=0) // множить надо только положительные числа (или, как сказано в условии, нули)
            p*=matr[i][j];
    cout<<"Proizvedenie="<<p<<endl; // выводим ответ
    system("pause"); // ожидаем ввода любого символа с клавиатуры
    return 0;  // конец программы
 }
Проще объяснить ну никак нельзя
Crank13
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 13
09.02.2014, 13:38  [ТС]     Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение #23
а вот теперь все понятно огромное вам спасибо за помощь
сейчас еще попробую разобраться с на писаной матрицей в программе

Добавлено через 7 минут
или вы можете так же объяснить как делается с вписаной в программу матрицей что бы не ломать голову как она пишется конечно если вам не трудно буду очень благодарен
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,186
Завершенные тесты: 1
09.02.2014, 13:50     Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение #24
Цитата Сообщение от Crank13 Посмотреть сообщение
вы можете так же объяснить как делается с вписаной в программу матрицей
C++
1
2
3
4
5
6
7
8
9
10
11
12
double matr[10][5]={ // обратите внимание для таких чисел нужен тип double
{1.8,5.0,3.0,4.0,5.0},// перечисляем 5 чисел 1-ой строки
{2.7,2.0,3.0,4.0,5.0},// перечисляем 5 чисел 2-ой строки
{3.6,2.0,3.0,4.0,5.0},
{4.0,2.0,3.0,4.0,5.0},
{5.1,2.0,3.0,4.0,5.0},
{6.2,2.0,3.0,4.0,5.0},
{7.3,2.0,3.0,4.0,5.0},
{8.4,2.0,3.0,4.0,5.0},
{0.9,2.0,3.0,4.0,5.0},
{9.5,2.0,3.0,4.0,5.0} // перечисляем 5 чисел 10-ой строки
};
И не забываем удалить строки в которых присваиваются случайные значения(7-9 из поста №22).
Crank13
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 13
09.02.2014, 14:17  [ТС]     Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение #25
мне уже стыдно писать сюда но после замены 7-9 строк на матрицу выдает вот это
1>c:\users\администратор\documents\visual studio 2010\projects\задача2\задача2\задача2.cpp(1): fatal error C1083: Не удается открыть файл предкомпилированный заголовок: Debug\задача2.pch: No such file or directory

Добавлено через 11 минут
C++ (Qt)
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
#include "StdAfx.h"
#include <iostream> // библиотека потокового ввода-вывода
#include <stdlib.h> // отсюда берем функцию генерации случайных чисел rand()
using namespace std; // делаем доступными переменные из <iostream>
int main()
 {
  // int matr[10][5];
 //   for(int i=0;i<10;i++) // перебираем строки по переменной i
 //   for(int j=0;j<5;j++) // перебираем столбцы по переменной j
     //   matr[i][j]=rand(); // присваиваем очередному элементу массива случайное значение
     double matr[10][5]={ // обратите внимание для таких чисел нужен тип double
{1.8,5.0,3.0,4.0,5.0},// перечисляем 5 чисел 1-ой строки
{2.7,2.0,3.0,4.0,5.0},// перечисляем 5 чисел 2-ой строки
{3.6,2.0,3.0,4.0,5.0},
{4.0,2.0,3.0,4.0,5.0},
{5.1,2.0,3.0,4.0,5.0},
{6.2,2.0,3.0,4.0,5.0},
{7.3,2.0,3.0,4.0,5.0},
{8.4,2.0,3.0,4.0,5.0},
{0.9,2.0,3.0,4.0,5.0},
{9.5,2.0,3.0,4.0,5.0} // перечисляем 5 чисел 10-ой строки
};
    int p=1;                 // сюда будем писать произведение. Единица потому, что умножение на 1 не изменяет результат произведения 
    for(int i=0;i<10;i++)
    for(int j=0;j<5;j++)
        if(matr[i][j]>=0) // множить надо только положительные числа (или, как сказано в условии, нули)
            p*=matr[i][j];
    cout<<"Proizvedenie="<<p<<endl; // выводим ответ
    system("pause"); // ожидаем ввода любого символа с клавиатуры
    return 0;  // конец программы
 }
а вот так работает нормально и число уже далеко не 1 или ноль выходит

Добавлено через 1 минуту
Proizvedenie=-2147483648
Для продолжения нажмите любую клавишу . . .
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2014, 15:03     Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение
Еще ссылки по теме:
C++ Вычислить произведение компонент вектора размером 5
Вычислить сумму всех неотрицательных элементов, а также их количество C++
C++ В матрице размером n х n найти сумму элементов, лежащих ниже главной диагонали, и произведение элементов, леж
В матрице F(4,9) найти произведение элементов , что превышают заданное число B . Вывести матрицу и произведение . C++

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

Или воспользуйтесь поиском по форуму:
Ev_Hyper
Заблокирован
09.02.2014, 15:03     Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение #26
Crank13, замените:
C++
1
int p=1;
на:
C++
1
double p=1;
Yandex
Объявления
09.02.2014, 15:03     Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru