3 / 3 / 0
Регистрация: 16.05.2009
Сообщений: 69
1

Динамическая матрица: посчитать произведение элементов, кратных трем

20.01.2010, 17:21. Показов 1154. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Составить программу для подсчёта произведения элементов двумерной целочисленной таблицы В, состоящей из k строк и p столбцов, имеющих значения, кратные 3. Использовать динамический массив.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2010, 17:21
Ответы с готовыми решениями:

Вычислить произведение не кратных трем чисел массива
вычислить произведение не кратных 3 чисел массива

Сформировать массив и посчитать сумму его элементов, кратных 3 и не кратных 5
Знаю, что много фигни написал, но уже не соображаю( Вот, собсна, сам код #include <stdio.h> ...

Вычислить произведение трёх элементов массива, кратных 3-ем и не кратных 2-ум
HELP!! Господа программеры. В программировании вобще 0. Нужно вычислить произведение трёх...

Найти количество элементов кратных трем
Найти для каждой строки количество элементов, кратных трем, и самый большой из полученных...

15
15 / 15 / 5
Регистрация: 19.10.2009
Сообщений: 187
20.01.2010, 17:31 2
C++
1
2
3
4
5
6
7
8
int **a;
a=new int*[k];
for(int i=0;i<k;i++)
   a[i]=new int[p]
int pr=1;
for(int i=0;i<k;i++)
   for(int j=0;j<p;j++)
      pr*=a[i][j]
Добавишь еще заполнение массива там...
1
3 / 3 / 0
Регистрация: 16.05.2009
Сообщений: 69
20.01.2010, 18:46  [ТС] 3
Больше всего затрудняло, как в эту программу вставить условие, чтобы считало произведение значений кратные 3.
0
15 / 15 / 5
Регистрация: 19.10.2009
Сообщений: 187
20.01.2010, 18:52 4
в цикле вставляешь
C++
1
if(a[i][j]%3==0)
и считаешь произведение
0
3 / 3 / 0
Регистрация: 16.05.2009
Сообщений: 69
20.01.2010, 19:21  [ТС] 5
Получилось, что-то вроде этого
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream.h>
void main()
{int k,p;
cout<<"BBeguTe k u p:";
cin>>k>>p;
int **B;
B=new int*[k];
for(int i=0;i<k;i++)
   B[i]=new int[p];
int pr=1;
  for(int j=0;j<p;j++)
 
if (B[i][j]%3==0)
      pr*=B[i][j];
cout<<pr;
}
но чё-то не запускается
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
20.01.2010, 19:40 6
Цитата Сообщение от Danil-za Посмотреть сообщение
но чё-то не запускается
Желательно до строки 13 (где Вы используете значения массива B[][]) присвоить значения элементам массива B[][].
0
3 / 3 / 0
Регистрация: 16.05.2009
Сообщений: 69
20.01.2010, 20:44  [ТС] 7
Подскажите, что о5 не так )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream.h>
void main()
{int k,p;
int **B;
B=new int*[k];
for(int i=0;i<k;i++)
   B[i]=new int[p];
int pr=1;
  for(int j=0;j<p;j++)
B[i][j]=rand()%10-5; // owu6Ka !!!
if (B[i][j]%3==0)
      pr*=B[i][j];
cout<<pr;
}
Добавлено через 45 минут
Тема ещё актуальна...
0
46 / 38 / 3
Регистрация: 14.12.2009
Сообщений: 272
20.01.2010, 21:02 8
C++
1
2
3
4
5
6
7
8
9
for (int i=0;i<k;i++)
for(int j=0;j<p;j++)
{
B[i][j]=rand()%10-5;
if (B[i][j]%3==0)
      pr*=B[i][j];
}
cout<< pr;
delete b[];
Добавлено через 1 минуту
не забываем освобождать выделенную память))
0
3 / 3 / 0
Регистрация: 16.05.2009
Сообщений: 69
20.01.2010, 21:06  [ТС] 9
Цитата Сообщение от syd2010 Посмотреть сообщение
не забываем освобождать выделенную память))
Освободим после проверки

Добавлено через 3 минуты
Цитата Сообщение от syd2010 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
for (int i=0;i<k;i++)
for(int j=0;j<p;j++)
{
B[i][j]=rand()%10-5;
if (B[i][j]%3==0)
      pr*=B[i][j];
}
cout<< pr;
delete b[];
Добавлено через 1 минуту
не забываем освобождать выделенную память))
Не работает, напишите кто точно знает полностью рабочую задачу. Все варианты перепробовал.
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
21.01.2010, 06:09 10
Цитата Сообщение от Danil-za Посмотреть сообщение
Подскажите, что о5 не так )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream.h>
void main()
{int k,p;
int **B;
B=new int*[k];
for(int i=0;i<k;i++)
 B[i]=new int[p];
int pr=1;
 for(int j=0;j<p;j++)
B[i][j]=rand()%10-5; // owu6Ka !!!
if (B[i][j]%3==0)
 pr*=B[i][j];
cout<<pr;
}
Добавлено через 45 минут
Тема ещё актуальна...
Для того что бы работатала функция rand() необходимо подключить #include <stdlib.h>
Для того чтобы создавать двухмерный массив размером k*p необходимо сначало присвоить значения переменным k и p
Вот этот кусок кода поясню в комментариях отдельно:
C++
1
2
3
4
5
6
int pr=1;
 for(int j=0;j<p;j++)
B[i][j]=rand()%10-5; // Чему в этом месте равно i ?
if (B[i][j]%3==0)// эта строка будет выполняться только один раз
 pr*=B[i][j];
cout<<pr;
В общем эта часть кода должна выглядеть так:
C++
1
2
3
4
5
6
7
8
9
10
int pr=1;
for(i=0; i<k; i++)
 for(int j=0;j<p;j++)
{
B[i][j]=rand()%10-5; // owu6Ka !!!
if (B[i][j]%3==0)
 pr*=B[i][j];
}
// в этом месте по желанию можно предусмотреть если pr останется равно 1.
cout<<pr;
0
3 / 3 / 0
Регистрация: 16.05.2009
Сообщений: 69
21.01.2010, 16:13  [ТС] 11
valeriikozlov, у меня выходит ноль при любых значениях

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream.h>
#include<stdlib.h>
void main()
{int const k=5,p=3;
int **B;
B=new int*[k];
for(int i=0;i<k;i++)
   B[i]=new int[p];
int pr=1;
for(i=0; i<k; i++)
 for(int j=0;j<p;j++)
{
B[i][j]=rand()%10-5;
if (B[i][j]%3==0)
 pr*=B[i][j];
}
cout<<pr;
}
0
46 / 38 / 3
Регистрация: 14.12.2009
Сообщений: 272
21.01.2010, 16:19 12
у меня билдере она и без этого модуля прет
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
21.01.2010, 16:37 13
Danil-za,
Запустите Вашу программу вот так (там дописан только вывод на экран самих элементов массива, что бы было видно из-за чего происходит постоянный вывод нуля):
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
#include<iostream.h>
#include<stdlib.h>
void main()
{int const k=5,p=3;
int **B;
B=new int*[k];
for(int i=0;i<k;i++)
   B[i]=new int[p];
int pr=1;
for(i=0; i<k; i++)
 for(int j=0;j<p;j++)
{
B[i][j]=rand()%10-5;
if (B[i][j]%3==0)
 pr*=B[i][j];
}
cout<<pr;
// âûâîä çíà÷åíèé ìàññèâà íà ýêðàí
cout<<endl;
for(i=0; i<k; i++)
{
 for(int j=0;j<p;j++)
     cout<<B[i][j]<<"  ";
    cout<<endl;
}
}
Наверняка у Вас получается также как и у меня. Мы перебираем элементы массива по строчно. В середине массива имеются элементы массива кратные 3. Но также после этих элементов есть элемент(ы) равные нулю. Так вот если элемент массива равен нулю, то он тоже подходит под условие:
if (B[i][j]%3==0)
Соответственно pr умножается на этот элемент и становится равной нулю. Если хотите от этого избавится (исключить умножение на нули), то сделайте так:
if (B[i][j]%3==0 && B[i][j]!=0 )
Кстати можете заметить, что сколько раз Вы не запускаете программу, элементы массива всегда одинаковые избавится можно и от этого: https://www.cyberforum.ru/cpp-... 44753.html
1
3 / 3 / 0
Регистрация: 16.05.2009
Сообщений: 69
21.01.2010, 16:42  [ТС] 14
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Так вот если элемент массива равен нулю, то он тоже подходит под условие: Соответственно pr умножается на этот элемент и становится равной нулю. Если хотите от этого избавится (исключить умножение на нули)
А как подходит под условие, разве ноль кратен 3 ?
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
21.01.2010, 16:45 15
Цитата Сообщение от Danil-za Посмотреть сообщение
А как подходит под условие, разве ноль кратен 3 ?
Операция % находит целый остаток от деления, а это значит что:
5%3 даст в ответе 2
4%3 даст в ответе 1
3%3 даст в ответе 0
2%3 даст в ответе 2
1%3 даст в ответе 1
0%3 даст в ответе 0
1
3 / 3 / 0
Регистрация: 16.05.2009
Сообщений: 69
21.01.2010, 16:46  [ТС] 16
valeriikozlov, спасибо за помощь
0
21.01.2010, 16:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2010, 16:46
Помогаю со студенческими работами здесь

Сумма элементов в массиве кратных трем
Написать функцию для нахождения в одномерном массиве количества элементов кратным трем

Подсчитать число элементов матрицы, кратных трем
Как составить такую программу: Подсчитать число элементов матрицы Q (5х7), кратных трем.

Подсчитать в массиве количество элементов кратных трем
Заданы два массива A(N) и B(M). Подсчитать в них количество элементов, кратных трем и первым на...

Определить сумму элементов массива, кратных трем
Помогите девушке решить индивидуальные задачи по С++ ........help me please!!!! 1.Дан массив...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru