Найти произведение отрицательных нечетных чисел побочной диагонали матрицы — C++(Си)

//---------------------------------------------------------------------------
#include <iostream>
#include <ctime>
#pragma hdrstop
 
using namespace std;
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char *argv[])
{
    int **A, n, p=1, Num=0;
    cout <<"Dimension: ";
    cin >>n;
    cout <<endl;
    A=new int*[n];
    for (int i=0; i<n; i++) A[i]=new int[n];
 
    //Случайные целые числа в диапазоне [-100, 100].
 
    srand (time(NULL));
    for (int i=0; i<n; i++) {
        for (int j=0; j<n; j++) {
        A[i][j]=(rand()%401-200);
        cout <<A[i][j]<<'\t';
      }
    cout <<endl;
    }
 
    for (int i=0, j=n-1; j!=-1; i++, j--) {
        if (A[i][j]<0 && A[i][j]%2!=0) p=p*A[i][j];
    }
 
    cout <<"\nP="<<p<<endl;
 
    //Расчет количества целых положительных на главной диагонали.
    for (int i=0, j=0; i<n || j<n; i++, j++) {
        if (A[i][j]>0 && A[i][j]%2==0) Num++;
    }
    cout <<"Num="<<Num<<endl;
 
    for (int j=0; j<n; j++) delete []A[j];
    delete []A;
    system ("pause");
    return 0;
}
//---------------------------------------------------------------------------

Следующий вариант

//---------------------------------------------------------------------------
#include <iostream>
#include <conio.h>
#pragma hdrstop
 
using namespace std;
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char *argv[])
{
    int **A, m, n, p=1, Num=0;
    cout <<"Rows: ";
    cin >>m;
    cout <<"Cols: ";
    cin >>n;
    cout <<endl;
    A=new int*[m];
    for (int i=0; i<m; i++)
     A[i]=new int[n];
 
    //Случайные целые числа в диапазоне [-100, 100].
    srand (time(NULL));
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
        {
            A[i][j]=(rand()%401-200);
            cout <<A[i][j]<<'\t';
        }
        cout <<endl;
    }
 
 
    for (int i=0;i<m ;i++)
        if (A[i][(m-1)-i]<0 && A[i][(m-1)-i]%2!=0)
                p*=A[i][(m-1)-i];
    cout<<"\nP= "<<p<<endl;
   getch();
    return 0;
}
//---------------------------------------------------------------------------

Leave a Comment