Главная » 2016 » Март » 25 » динамический матрица 2 функции произведение матриц
12:40
динамический матрица 2 функции произведение матриц

#include <iostream>
#include <ctime>
using namespace std;
void vvod(int **x, int k, int p)
{
    for (int i=0; i<k; i++)
    {
        for (int j=0; j<p; j++)
            x[i][j]=rand()%10;
    }
}
void vivod(int **x, int k, int p)
{
    for (int i=0; i<k; i++)
    {
        for (int j=0; j<p; j++)
            cout<<x[i][j]<<" ";
        cout<<endl;
    }
}
void proizv(int **x, int **y, int **z, int k, int p, int t)
{
    int s;
    for (int i=0; i<k; i++)
    {
        for (int j=0; j<t; j++)
        {
            s=0;
            for (int k=0; k<p; k++)
                s=s+x[i][k]*y[k][j];
            z[i][j]=s;
        }
    }
}
int main()
{
    const int n=10,m=15,p=13;
    setlocale(LC_ALL,"rus_rus.1251");
    srand(time(0));
    int **a,**b,**c;
    //new
    a=new int*[n];
    for (int i=0;i<n;i++) 
        a[i]=new int [m];
    b=new int*[m];
    for (int i=0;i<m;i++) 
        b[i]=new int [p];
    c=new int*[n];
    for (int i=0;i<n;i++) 
        c[i]=new int [p];

    vvod(a,n,m);
    cout<<"Матрица A:"<<endl;
    vivod(a,n,m);
    
    vvod(b,m,p);
    cout<<"Матрица B:"<<endl;
    vivod(b,m,p);
    
    proizv(a,b,c,n,m,p);
    cout<<"Матрица C:"<<endl;
    vivod(c,n,p);

    //delete
    for (int i=0;i<n;i++) 
        delete []a[i];
    delete []a;
    for (int i=0;i<m;i++) 
        delete []b[i];
    delete []b;
    for (int i=0;i<n;i++) 
        delete []c[i];
    delete []c;
    
    system("pause");
    return 0;
}

Просмотров: 401 | Добавил: denjes | Рейтинг: 5.0/1
Всего комментариев: 1
avatar
0
1 consolegamebit • 12:55, 25.03.2016
surprised
avatar