Найти min из чисел, каждое из которых является произведением всех элементов матриц А, В и D, соответственно - C (СИ)
Формулировка задачи:
В общем, нужно сделать с использованием функций
Я явно где-то накосячил, потому что выводит только 0
Помогите пожалуйста
Листинг программы
- /*Найти минимальное из чисел, каждое из которых является произведением всех элементов матриц А, В и D, соответственно.*/
- #include <conio.h>
- #include <stdio.h>
- #include <locale.h>
- #include <math.h>
- int vvod(int**mass, int n,int m);
- int pr(int**mass, int n, int m);
- int vyvod(int**mass, int n,int m);
- int main()
- {
- int i,j,P,n,m;
- int a,b;//первый
- int c,d;//второй
- int f,g;//третий
- puts("Vvedyte kolichestvo strok massiva");
- scanf("%d",&a);
- puts("Vvedyte kolichestvo stolbcov massiva");
- scanf("%d",&b);
- int **A[a][b];
- vvod(**A,a,b);
- puts("Vvedyte kolichestvo strok massiva");
- scanf("%d",&c);
- puts("Vvedyte kolichestvo stolbcov massiva");
- scanf("%d",&d);
- int **B[c][d];
- vvod(**B,c,d);
- puts("Vvedyte kolichestvo strok massiva");
- scanf("%d",&f);
- puts("Vvedyte kolichestvo stolbcov massiva");
- scanf("%d",&g);
- int **D[f][g];
- vvod(**D,f,g);
- //
- vyvod(**A,a,b);
- vyvod(**B,c,d);
- vyvod(**D,f,g);
- int p1,p2,p3;
- p1=pr(**A,a,b);
- p2=pr(**B,c,d);
- p3=pr(**D,f,g);
- printf("%d %d %d",p1,p2,p3);
- //
- }
- int vvod(int**mass, int n,int m)
- {
- int i,j;
- mass= new int*[n];
- for(i=0;i<n;i++)
- {
- mass[i]=new int[m];
- }
- puts("Vvedyte massiv");
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- scanf("%d",&mass[i][j]);
- }
- }
- }
- int vyvod(int**mass, int n,int m)
- {
- int i,j;
- mass= new int*[n];
- for(i=0;i<n;i++)
- {
- mass[i]=new int[m];
- }
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- printf("%d \n",mass[i][j]);
- }
- }
- }
- //
- int pr(int**mass, int n, int m)
- {
- int P=1;
- int i,j;
- mass= new int*[n];
- for(i=0;i<n;i++)
- {
- mass[i]=new int[m];
- }
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- P=P*mass[i][j];
- }
- }
- return P;
- }
- //
Решение задачи: «Найти min из чисел, каждое из которых является произведением всех элементов матриц А, В и D, соответственно»
textual
Листинг программы
- /*Найти минимальное из чисел, каждое из которых является произведением всех элементов матриц А, В и D, соответственно.*/
- #include <conio.h>
- #include <stdio.h>
- #include <locale.h>
- #include <math.h>
- int vvod(int*** mass, int n,int m);
- int pr(int** mass, int n, int m);
- int vyvod(int** mass, int n,int m);
- void del(int** mass, int n,int m);
- int main()
- {
- int i,j,P,n,m;
- int a,b;//первый
- int c,d;//второй
- int f,g;//третий
- puts("Vvedyte kolichestvo strok massiva");
- scanf("%d",&a);
- puts("Vvedyte kolichestvo stolbcov massiva");
- scanf("%d",&b);
- int **A;
- vvod(&A,a,b);
- puts("Vvedyte kolichestvo strok massiva");
- scanf("%d",&c);
- puts("Vvedyte kolichestvo stolbcov massiva");
- scanf("%d",&d);
- int **B;
- vvod(&B,c,d);
- puts("Vvedyte kolichestvo strok massiva");
- scanf("%d",&f);
- puts("Vvedyte kolichestvo stolbcov massiva");
- scanf("%d",&g);
- int **D;
- vvod(&D,f,g);
- //
- vyvod(A,a,b);
- vyvod(B,c,d);
- vyvod(D,f,g);
- int p1,p2,p3;
- p1=pr(A,a,b);
- p2=pr(B,c,d);
- p3=pr(D,f,g);
- printf("%d %d %d",p1,p2,p3);
- del(A,a,b);
- del(B,c,d);
- del(D,f,g);
- //
- return 0;
- }
- int vvod(int*** mass, int n,int m)
- {
- int i,j;
- *mass= new int*[n];
- for(i=0;i<n;i++)
- {
- (*mass)[i]=new int[m];
- }
- puts("Vvedyte massiv");
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- scanf("%d",&(*mass)[i][j]);
- }
- }
- }
- int vyvod(int**mass, int n,int m)
- {
- int i,j;
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- printf("%d \n", mass[i][j]);
- }
- }
- }
- //
- int pr(int**mass, int n, int m)
- {
- int P=1;
- int i,j;
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- P=P*mass[i][j];
- }
- }
- return P;
- }
- //
- void del(int**mass, int n, int m)
- {
- int i,j;
- for(i=0;i<n;i++)
- {
- delete[] mass[i];
- }
- delete[] mass;
- return;
- }
Объяснение кода листинга программы
Код выполняет следующие действия:
- Запрашивает у пользователя количество строк и столбцов для каждого из трех массивов.
- Выделяет память под три массива с помощью функции
vvod()
. - Запрашивает у пользователя ввод значений для каждого элемента массивов с помощью функции
vvod()
. - Выводит содержимое массивов на экран с помощью функции
vyvod()
. - Находит произведение всех элементов каждого массива с помощью функции
pr()
. - Выводит на экран полученные произведения.
- Освобождает память, выделенную под массивы, с помощью функции
del()
. Список действий: - Ввод количества строк и столбцов для первого массива
- Ввод количества строк и столбцов для второго массива
- Ввод количества строк и столбцов для третьего массива
- Ввод значений для первого массива
- Ввод значений для второго массива
- Ввод значений для третьего массива
- Вывод содержимого первого массива
- Вывод содержимого второго массива
- Вывод содержимого третьего массива
- Нахождение произведения всех элементов первого массива
- Нахождение произведения всех элементов второго массива
- Нахождение произведения всех элементов третьего массива
- Вывод полученных произведений
- Освобождение памяти под первым массивом
- Освобождение памяти под вторым массивом
- Освобождение памяти под третьим массивом
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д