Найти 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()
. Список действий: - Ввод количества строк и столбцов для первого массива
- Ввод количества строк и столбцов для второго массива
- Ввод количества строк и столбцов для третьего массива
- Ввод значений для первого массива
- Ввод значений для второго массива
- Ввод значений для третьего массива
- Вывод содержимого первого массива
- Вывод содержимого второго массива
- Вывод содержимого третьего массива
- Нахождение произведения всех элементов первого массива
- Нахождение произведения всех элементов второго массива
- Нахождение произведения всех элементов третьего массива
- Вывод полученных произведений
- Освобождение памяти под первым массивом
- Освобождение памяти под вторым массивом
- Освобождение памяти под третьим массивом
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д