Главная » 2018 » Март » 13 » Матрицы. Диагонали
09:31
Матрицы. Диагонали

#include <iostream>
#include <ctime>
using namespace std;
void vvod(int **x, int k);
void vivod(int **x, int k);
int summa_gl(int **x, int k);
int summa_nad_gl(int **x, int k);
int summa_pob(int **x, int k);
int summa_nad_pob(int **x, int k);
int main()
{
    setlocale(LC_ALL, "Russian");
    srand(time(0));    
    const int n=20;
    int **a;
    a=new int *[n];
    for (int i=0;i<n;i++) a[i]=new int [n];
    //cout<<"Введите матрицу А"<<endl; 
    vvod(a,n);
    cout<<"Введённая матрица А"<<endl;
    vivod(a,n);
    cout<<"Сумма главной диагонали = "<<summa_gl(a,n)<<endl;
    cout<<"Сумма побочной диагонали = "<<summa_pob(a,n)<<endl;
    cout<<"Сумма над главной диагонали = "<<summa_nad_gl(a,n)<<endl;
    cout<<"Сумма над побочной диагонали = "<<summa_nad_pob(a,n)<<endl;
    for (int i=0;i<n;i++) delete []a[i];
    delete []a;
    system("pause");
    return 0;
}
void vvod(int **x, int k)
{
    for (int i=0;i<k;i++)
        for (int j=0;j<k;j++) 
            x[i][j]=rand()%90+10;
}
void vivod(int **x, int k)
{
    for (int i=0;i<k;i++)
    {
        for (int j=0;j<k;j++) 
            cout<<x[i][j]<<" ";
        cout<<endl;
    }
    cout<<endl;
}
int summa_gl(int **x, int k)
{
    int s=0;
    for (int i=0;i<k;i++) 
        s+=x[i][i];
    return s;
}
int summa_pob(int **x, int k)
{
    int s=0;
    for (int i=0;i<k;i++) 
        s+=x[i][k-i-1];
    return s;
}
int summa_nad_gl(int **x, int k)
{
    int s=0;
    for (int i=0;i<k;i++)
        for (int j=i+1;j<k;j++) 
            s+=x[i][j];
    return s;
}
int summa_nad_pob(int **x, int k)
{
    int s=0;
    for (int i=0;i<k;i++)
        for (int j=0;j<k-i-1;j++) 
            s+=x[i][j];
    return s;
}

Просмотров: 330 | Добавил: denjes | Рейтинг: 0.0/0
Всего комментариев: 0
avatar