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

Задача. Найти произведение элементов(<0) строки в матрице - C++

Восстановить пароль Регистрация
 
xXSayberXx
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 21
28.10.2013, 02:54     Задача. Найти произведение элементов(<0) строки в матрице #1
Здравствуйте, пытаюсь создать программу, не получается. Нужно найти произведение отрицательных элементов строки в матрице. И если в этой строке есть 0, вывести "Обнаружен 0". Заранее спасибо)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main()
{
int h[10][10], n, m, i, j, p;
cout<<"n=";cin>>n;
cout<<"m=";cin>>m;
{
cin>>h[n][m];
}
for (i=0; i<n; i++)
     if (h[n][m]<0)
{
p*=h[n][m]
}
cout<<"p="<<p<<endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2013, 02:54     Задача. Найти произведение элементов(<0) строки в матрице
Посмотрите здесь:

C++ В матрице В ( 4 на 4) найти произведение элементов главной диагонали.
C++ В матрице найти произведение над главной диагональю,если произведение делится на 3 заменить побочную диагональ 0.
C++ Задача на указатели (Рассчитать в одной функции сумму и произведение значений элементов произвольной строки двухмерного массива)
C++ Задача по матрице (Найти кол-во элементов больше 5 среди элементов главной диагонали.Вычислить среднее арифметическое)
В матрице F(4,9) найти произведение элементов , что превышают заданное число B . Вывести матрицу и произведение . C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4922 / 2665 / 243
Регистрация: 29.11.2010
Сообщений: 7,420
28.10.2013, 03:00     Задача. Найти произведение элементов(<0) строки в матрице #2
Цитата Сообщение от xXSayberXx Посмотреть сообщение
{
cin>>h[n][m];
}
считывать элементы надо в цикле, где индексы меняются и соответственно элементы массива с которыми идет работа тоже. У вас же идет попытка вестись с элементом массива, на деле хотя это выход за границы т.к. нумерация индексов идет с 0 до размер-1 включительно.
Советую вам для начала задать размер массива константой, иначе придется применять динамические массивы, а это уже работа с памятью, лучше узнать о ней попозже.

Форматирование хромает. Тело должно от условия или цикла находиться на несколько отступов правее, а не на одном уровне или левее.

Цитата Сообщение от xXSayberXx Посмотреть сообщение
ти произведение отрицательных элементов строки в матрице. И если в этой строке есть 0, вывести "Обнаружен 0".
Достаточно в конце проверить переменную, отвечающую за произведение. Лишь 0 мог бы приравнять её к нулю. Кстати, в начале она должна быть равна 1, иначе в ней будет находиться мусор на момент обращения.
xXSayberXx
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 21
16.11.2013, 08:07  [ТС]     Задача. Найти произведение элементов(<0) строки в матрице #3
Все получилось) Есть еще вопрос, а можно ли выделить(т.е вывести) 2 произвольных столбца из матрицы??
Zig_Stas
8 / 8 / 1
Регистрация: 26.10.2013
Сообщений: 55
16.11.2013, 10:05     Задача. Найти произведение элементов(<0) строки в матрице #4
Цитата Сообщение от xXSayberXx Посмотреть сообщение
Все получилось) Есть еще вопрос, а можно ли выделить(т.е вывести) 2 произвольных столбца из матрицы??
Конечно можно.
в цикле
C++
1
2
3
4
5
for(i=0; i<n;i++)
 {
  for(j= номер столбца; j<=номер столбца;j++)
     cout<<h[i][j];
  }
xXSayberXx
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 21
16.11.2013, 12:45  [ТС]     Задача. Найти произведение элементов(<0) строки в матрице #5
У меня вышло так, все работает, выводит указанные столбцы; а как сделать чтобы вывелось 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
#include <iostream>
#include <ctime> 
 
using namespace std;
 
int main()
{
    srand(time(NULL));
    int n = 0,m = 0,i,j;
    cin >> n;
    cin >> m; 
    int **a = new int* [n];
    for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
    {
        a[i] = new int [n]; 
        a[j] = new int [m]; 
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            a[i][j] = rand()%10; 
            cout << a[i][j] << " "; 
        }
        cout << endl; 
    }
       for(i=0; i<n;i++)
    {
       for(j=2; j<=3;j++)
       cout<<a[i][j]<<"\t";
       cout<<endl;
    }
  system("pause");
}
xXSayberXx
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 21
19.11.2013, 10:41  [ТС]     Задача. Найти произведение элементов(<0) строки в матрице #6
Все, решил, спасибо большое тем, кто мне помогал)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2013, 10:27     Задача. Найти произведение элементов(<0) строки в матрице
Еще ссылки по теме:

В матрице К размером m*n найти в каждом столбце произведение отрицательных элементов и количество нулевых элементов в матрице C++
Найти сумму нечетных элементов 3 столбца и произведение отрицательных кратных 3 элементов 2-ой строки матрицы C++
C++ В матрице размером n х n найти сумму элементов, лежащих ниже главной диагонали, и произведение элементов, леж

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

Или воспользуйтесь поиском по форуму:
xXSayberXx
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 21
25.11.2013, 10:27  [ТС]     Задача. Найти произведение элементов(<0) строки в матрице #7
Мне скоро эти матрицы сниться будут)) Как вывести из квадратной матрицы главные диагонали, чтобы форма была такая же, как и в матрице?? Получилось только 1 вывести, и то, в столбик
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
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
int fun()
{
 srand(time(NULL));
 int n =0,i,j;
 cout <<"n=";
 cin>> n;
 cout <<"Matrix";
 cout << endl;
 cout << endl;
 int **a = new int* [n];
 for (int i = 0; i < n; i++)
 for (int j = 0; j < n; j++)
  {
   a[i] = new int [n];
   a[j] = new int [n];
  }
 for (int i = 0; i < n; i++)
  {
  for (int j = 0; j < n; j++)
   {
    a[i][j] = rand()%10;
    cout << a[i][j] << " ";
   }
  cout << endl;
 }
 {
   cout << endl;
   for(i=0; i<n;i++)
   for(j=0; j<n;j++)
   if (i==j)
   cout<<a[i][j]<<endl;
 }
}
int main()
{
 fun();
 system("pause");
}
Yandex
Объявления
25.11.2013, 10:27     Задача. Найти произведение элементов(<0) строки в матрице
Ответ Создать тему
Опции темы

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