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

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

Войти
Регистрация
Восстановить пароль
 
Danil-za
3 / 3 / 0
Регистрация: 16.05.2009
Сообщений: 69
#1

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

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

Составить программу для подсчёта произведения элементов двумерной целочисленной таблицы В, состоящей из k строк и p столбцов, имеющих значения, кратные 3. Использовать динамический массив.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2010, 17:21     Динамическая матрица: посчитать произведение элементов, кратных трем
Посмотрите здесь:

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

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

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

Найти количество элементов кратных трем - C++
Найти для каждой строки количество элементов, кратных трем, и самый большой из полученных результатов. 1) Использовать функции. 2) В...

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Metal_666_
15 / 15 / 2
Регистрация: 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]
Добавишь еще заполнение массива там...
Danil-za
3 / 3 / 0
Регистрация: 16.05.2009
Сообщений: 69
20.01.2010, 18:46  [ТС]     Динамическая матрица: посчитать произведение элементов, кратных трем #3
Больше всего затрудняло, как в эту программу вставить условие, чтобы считало произведение значений кратные 3.
Metal_666_
15 / 15 / 2
Регистрация: 19.10.2009
Сообщений: 187
20.01.2010, 18:52     Динамическая матрица: посчитать произведение элементов, кратных трем #4
в цикле вставляешь
C++
1
if(a[i][j]%3==0)
и считаешь произведение
Danil-za
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;
}
но чё-то не запускается
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.01.2010, 19:40     Динамическая матрица: посчитать произведение элементов, кратных трем #6
Цитата Сообщение от Danil-za Посмотреть сообщение
но чё-то не запускается
Желательно до строки 13 (где Вы используете значения массива B[][]) присвоить значения элементам массива B[][].
Danil-za
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 минут
Тема ещё актуальна...
syd2010
23 / 43 / 1
Регистрация: 14.12.2009
Сообщений: 273
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 минуту
не забываем освобождать выделенную память))
Danil-za
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 минуту
не забываем освобождать выделенную память))
Не работает, напишите кто точно знает полностью рабочую задачу. Все варианты перепробовал.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
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;
Danil-za
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;
}
syd2010
23 / 43 / 1
Регистрация: 14.12.2009
Сообщений: 273
21.01.2010, 16:19     Динамическая матрица: посчитать произведение элементов, кратных трем #12
у меня билдере она и без этого модуля прет
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
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 )
Кстати можете заметить, что сколько раз Вы не запускаете программу, элементы массива всегда одинаковые избавится можно и от этого: http://www.cyberforum.ru/cpp-beginners/thread44753.html
Danil-za
3 / 3 / 0
Регистрация: 16.05.2009
Сообщений: 69
21.01.2010, 16:42  [ТС]     Динамическая матрица: посчитать произведение элементов, кратных трем #14
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Так вот если элемент массива равен нулю, то он тоже подходит под условие: Соответственно pr умножается на этот элемент и становится равной нулю. Если хотите от этого избавится (исключить умножение на нули)
А как подходит под условие, разве ноль кратен 3 ?
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2010, 16:46     Динамическая матрица: посчитать произведение элементов, кратных трем
Еще ссылки по теме:

Функция нахождения в целочисленных массивах элементов кратных трем - C++
Условие-найти из целочисленных массивов А B C элементы кратные 3 Выскакивает вот такая проблема: invalid types float for array subscript...

Вычислить среднее значение нечетных элементов кратных трем - C++
Определить, кратны ли трем нечетные элементы последовательность, и если кратны, то вычислить их среднее значение Добавлено через 24...

Определить количество элементов массива, кратных трем и индекс последнего такого элемента - C++
Сформировать массив,содержащий 7 элементов,задав элементы с клавиатуры.Определить количество элементов,кратных 3 и индексы последнего...

Найти среднее арифметическое положительных кратных трем элементов массива, расположенных до минимального элемента - C++
Привет всем помогите с задачей на С++. Найти среднее арифметическое положительных кратных трем элементов массива, расположенных до...

Посчитать сумму всех элементов, кратных заданному числу - C++
Дан массив a из n целых чисел. Требуется посчитать сумму всех элементов, кратных заданному числу x.

Массив: Посчитать сумму всех элементов, кратных заданному числу x - C++
Дан массив a из n целых чисел. Требуется посчитать сумму всех элементов, кратных заданному числу x.С++ Формат входных данных На...


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

Или воспользуйтесь поиском по форуму:
Danil-za
3 / 3 / 0
Регистрация: 16.05.2009
Сообщений: 69
21.01.2010, 16:46  [ТС]     Динамическая матрица: посчитать произведение элементов, кратных трем #16
valeriikozlov, спасибо за помощь
Yandex
Объявления
21.01.2010, 16:46     Динамическая матрица: посчитать произведение элементов, кратных трем
Ответ Создать тему
Опции темы

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