Найти 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;
}

Объяснение кода листинга программы

Код выполняет следующие действия:

  1. Запрашивает у пользователя количество строк и столбцов для каждого из трех массивов.
  2. Выделяет память под три массива с помощью функции vvod().
  3. Запрашивает у пользователя ввод значений для каждого элемента массивов с помощью функции vvod().
  4. Выводит содержимое массивов на экран с помощью функции vyvod().
  5. Находит произведение всех элементов каждого массива с помощью функции pr().
  6. Выводит на экран полученные произведения.
  7. Освобождает память, выделенную под массивы, с помощью функции del(). Список действий:
  8. Ввод количества строк и столбцов для первого массива
  9. Ввод количества строк и столбцов для второго массива
  10. Ввод количества строк и столбцов для третьего массива
  11. Ввод значений для первого массива
  12. Ввод значений для второго массива
  13. Ввод значений для третьего массива
  14. Вывод содержимого первого массива
  15. Вывод содержимого второго массива
  16. Вывод содержимого третьего массива
  17. Нахождение произведения всех элементов первого массива
  18. Нахождение произведения всех элементов второго массива
  19. Нахождение произведения всех элементов третьего массива
  20. Вывод полученных произведений
  21. Освобождение памяти под первым массивом
  22. Освобождение памяти под вторым массивом
  23. Освобождение памяти под третьим массивом

Оцени полезность:

5   голосов , оценка 3.4 из 5
Похожие ответы