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

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

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

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

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

Задача:
Ввести матрицу размером 10*5.
Для не отрицательных элементов вычислить их произведение.
вообще не понимаю как это сделать помогите плз разобраться
заранее большое спс
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2014, 19:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение (C++):

Pascal в C++. Максимальное произведение двух элементов для последовательности целых неотрицательных чисел - C++
Здравствуйте! Переведите пожалуйста из Pascal в C++: program N_27; const d = 8; var N: integer; a: array of integer; x:...

Ввести матрицу и определить произведение полож. элементов ниже главной диагонали - C++
Помогите . Ввести матрицу размером N x M. Память для массива выделить динамически. Определить произведение положительных...

Ввести матрицу размером NxM. - C++
12. Найти в каждом столбце матрицы минимальный элемент. #include <iostream.h> #include <iomanip.h> #include <math.h> int...

Из заданной матрицы A размером получить матрицу В размером по правилу: первый столбец состоит из положительных элементов, второй – из отрицате - C++
1. Из заданной матрицы A размером получить матрицу В размером по правилу: первый столбец состоит из положительных элементов, второй –...

Найти сумму неотрицательных и произведение положительных элементов массива - C++
Мужики подскажите как написать пожалуйста!!! Составить программу, использующую для хранения значений одномерный массив: const N=10; ...

Скалярное произведение строки с наибольшим количеством неотрицательных элементов на i-ый столбец - C++
Здравствуйте. Просьба помочь с заданием. Дана матрица размером nxn. Высчитать скалярное произведение строки с наибольшим количеством...

25
zss
Модератор
Эксперт С++
6404 / 5970 / 1945
Регистрация: 18.12.2011
Сообщений: 15,401
Завершенные тесты: 1
09.02.2014, 11:05 #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");
 }
2
Crank13
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 13
09.02.2014, 11:15  [ТС] #17
УРА!!! Заработала) теперь в цмд предлагает ввести матрицу так может ее проще вписать в программу? в задаче указан размер матрицы 5 на 10
0
zss
Модератор
Эксперт С++
6404 / 5970 / 1945
Регистрация: 18.12.2011
Сообщений: 15,401
Завершенные тесты: 1
09.02.2014, 11:22 #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();
1
Crank13
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 13
09.02.2014, 12:58  [ТС] #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");
 }
а так опять пустой цмд выходит
0
zss
Модератор
Эксперт С++
6404 / 5970 / 1945
Регистрация: 18.12.2011
Сообщений: 15,401
Завершенные тесты: 1
09.02.2014, 13:17 #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");
 }
0
Crank13
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 13
09.02.2014, 13:21  [ТС] #21
ужасно не понятно все куда что ставить( то работает то не работает уже неделю бьюсь над задачей(голова кругом идет
может кто то может объяснить что опять не так
доделаю пойду книгу дочитывать по программированию мб в следующих главах все понятней станет

Добавлено через 2 минуты
но разве произведения должно быть постоянно ноль?
и эта матрица выходит размером 10 на 5?
почему не показывает саму матрицу?
0
zss
Модератор
Эксперт С++
6404 / 5970 / 1945
Регистрация: 18.12.2011
Сообщений: 15,401
Завершенные тесты: 1
09.02.2014, 13:25 #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;  // конец программы
 }
Проще объяснить ну никак нельзя
1
Crank13
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 13
09.02.2014, 13:38  [ТС] #23
а вот теперь все понятно огромное вам спасибо за помощь
сейчас еще попробую разобраться с на писаной матрицей в программе

Добавлено через 7 минут
или вы можете так же объяснить как делается с вписаной в программу матрицей что бы не ломать голову как она пишется конечно если вам не трудно буду очень благодарен
0
zss
Модератор
Эксперт С++
6404 / 5970 / 1945
Регистрация: 18.12.2011
Сообщений: 15,401
Завершенные тесты: 1
09.02.2014, 13:50 #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).
1
Crank13
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 13
09.02.2014, 14:17  [ТС] #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
Для продолжения нажмите любую клавишу . . .
0
Ev_Hyper
Заблокирован
09.02.2014, 15:03 #26
Crank13, замените:
C++
1
int p=1;
на:
C++
1
double p=1;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2014, 15:03
Привет! Вот еще темы с ответами:

Для матриццы размером n x m вычислить сумму элементов матрицы - C++
Условия этой задачи (задача одна), таковы: Для матриццы размером n x m вычислить сумму элементов матрицы. Умножить на это число...

Вычислить произведение компонент вектора размером 5 - C++
Не могу выполнить Выяснить, в любой из строк матрицы размера 4x5 хотя бы один нулевой элемент. Воспользоваться функцией, которая...

Вычислить сумму всех неотрицательных элементов, а также их количество - C++
Задан массив A(N, M). Вычислить сумму всех неотрицательных элементов, а также их количество.

В матрице F(4,9) найти произведение элементов , что превышают заданное число B . Вывести матрицу и произведение . - C++
В матрице F(4,9) найти произведение элементов , что превышают заданное число B . Вывести матрицу и произведение .


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

Или воспользуйтесь поиском по форуму:
26
Yandex
Объявления
09.02.2014, 15:03
Ответ Создать тему
Опции темы

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