Тема: Сума елементів з парними номерами рядків для стовпців
в якому розташовується два нульових елемента матриці.
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
#include <stdlib.h>
#include <locale.h>
#include <cmath>
#ifndef
/*¬изначити: суму елемент≥в з парними номерами р¤дк≥в дл¤ стовпц¤, в ¤кому
розташовуЇтьс¤ два нульових елемента матриц≥.*/
class Array {
typedef int type;
typedef unsigned int uint;
type ** m_Array;
void NewArray( uint row, uint col );
public:
uint m_Row, m_Col;
Array( const Array & ar );
Array( uint row, uint col );
Array & operator=( const Array & ar );
~Array();
void ZeroArray();
void Print();
void Set( uint row, uint col, type data );
type & operator()( uint row, uint col );
friend void Run( const Array & ar );
};
#endif
///////////////////// function //////////////////////
void Array::NewArray(Array::uint row, Array::uint col){
m_Row = row;
m_Col = col;
m_Array = new type*[m_Row];
for( uint i = 0; i<m_Row; ++i )
m_Array[i] = new type[m_Col];
}
Array::Array(const Array &ar){
NewArray( ar.m_Row, ar.m_Col );
for( uint i =0; i< m_Row; ++i )
for( uint j=0; j<m_Col; ++j )
m_Array[i][j] = ar.m_Array[i][j];
}
Array::Array(Array::uint row, Array::uint col){
NewArray( row, col );
ZeroArray();
}
Array & Array::operator =(const Array &ar){
uint i,j;
if( this == &ar ) return *this;
for( i= 0; i<m_Row; ++i )
delete [] m_Array[i];
delete [] m_Array;
NewArray( ar.m_Row, ar.m_Col );
for( i =0; i< m_Row; ++i )
for( j=0; j<m_Col; ++j )
m_Array[i][j] = ar.m_Array[i][j];
}
Array::~Array(){
uint i;
for( i=0; i<m_Row; ++i )
delete [] m_Array[i];
delete [] m_Array;
}
void Array::ZeroArray(){
for( uint i =0; i< m_Row; ++i )
for( uint j=0; j<m_Col; ++j )
m_Array[i][j] = type();
}
//метод друку поточного стану масиву
void Array::Print(){
cout << "\nƒвом≥рний динам≥чний масив: " << m_Row << " x " << m_Col << " \n";
for( uint i =0; i< m_Row; ++i ){
for( uint j=0; j<m_Col; ++j )
cout <<setw(4) << m_Array[i][j];
cout << "\n";
}
}
//ћетод перевстановленн¤ поточного стану масиву
void Array::Set(Array::uint row, Array::uint col, Array::type data){
if( row <= m_Row && col <= m_Col )
m_Array[row][col] = data;
}
Array::type & Array::operator ()(Array::uint row, Array::uint col){
return m_Array[row][col];
}
//ћетод, ¤кий вир≥шуЇ поставлене завданн¤
void Run( const Array & ar ){
Array::uint i, j;
int n, sum;
for(i=0; i<ar.m_Row; i=+2)
{
for(j=0; j<ar.m_Col; j++)
{
if (ar.m_Array[j]==0)
{ // n++;
///if (n==2)
sum += ar.m_Array[i][j];
}
}
}
cout << "\n—ума елемент≥в у стовпц≥в ,в ¤кому розташовуЇтьс¤ два нульових елемента матриц≥ = " << sum << endl;
}
//////////////////// Головна функція ////////////////////////
int main(){
system("chcp 1251");
system("cls");
int n1,n2;
cout<<"¬вед≥ть к≥льк≥сть р¤дк≥в: "; cin>>n1;
cout<<"\n¬вед≥ть к≥льк≥сть стовц≥в: "; cin>>n2;
Array ar(n1, n2);
for (int i=0;i<n1;i++)
{
for (int j=0;j<n2;j++)
{
cout<<"¬вед≥ть ц≥лочисельний "<<i+1<<" "<<j+1<<" елемент масиву: "; cin>>ar(i,j);
}
}
ar.Print();//вив≥д масиву на екран
Run(ar); //¬изначаЇ суму елемент≥в у тих стовпц¤х, ¤к≥ м≥ст¤ть хоча б один негативний елемент.
cout << "\nЌажм≥ть ентер...";
getch();
return 0;
}