Вариант 2

Дана целочисленная прямоугольная матрица. Определить:

  1. количество столбцов, не содержащих ни одного нулевого элемента;
  2. характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик.

Код программы:

//---------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<windows.h>
#include<iomanip.h>
#include<fstream.h>
#include<vcl.h>
#pragma hdrstop
#pragma argsused
//---------------------------------------------------------------------------
char *rus(const char *text); 
int main(int argc, char* argv[])
 {
  randomize();
  int n,m,i,j,cnt=0,nmin;
  int buf_sum,buf_a;
  bool not_null;
  cout<<rus("Введите размерность массива:")<<endl;
  cout<<rus("Введите количество строк:    n=");cin>>n;
  cout<<rus("Введите количество столбцов: m=");cin>>m;
  int **a=new int*[n];
  for(i=0;i<n;i++)a[i]=new int [m];
  int *sum=new int[n];
//---------------------------------------------------------------------------
  cout<<rus("\nВведите элементы массива:")<<endl<<endl;
  for(i=0;i<n;i++)
   {
    sum[i]=0;
    for(j=0;j<m;j++)
     {
      a[i][j]=-5+random(20);
      if(a[i][j]>0&&(a[i][j]%2)==0)
       {
        sum[i]+=a[i][j];
       }
     }
   }
  for(i=0;i<n;i++)
   {
    for(j=0;j<m;j++)
    cout<<setw(4)<<a[i][j];
    cout<<" | "<<sum[i]<<endl;
   }
//---------------------------------------------------------------------------
  for(j=0;j<m;j++)
   {
    not_null=true;
    for(i=0;i<n;i++)
    if(a[i][j]==0)
     {
      not_null=false;
      break;
     }
    if(not_null)
    cnt++;
   }
  cout<<rus("\nКоличество столбцов не содержащих ни одного 0 элемента: ")<<cnt;
//---------------------------------------------------------------------------
  for(i=0;i<n-1;i++)
   {
    nmin=i;
    for(j=i+1;j<n;j++)
    if(sum[j]<sum[nmin])
    nmin=j;
    buf_sum=sum[i];
    sum[i]=sum[nmin];
    sum[nmin]=buf_sum;
    for(j=0;j<m;j++)
     {
      buf_a=a[i][j];
      a[i][j]=a[nmin][j];
      a[nmin][j]=buf_a;
     }
   }
  cout<<endl<<endl;
  cout<<rus("Упорядоченная матрица:");
  cout<<endl<<endl;
  for(i=0;i<n;i++)
   {
    for(j=0;j<m;j++)
    cout<<setw(4)<<a[i][j];
    cout<<" | "<<sum[i]<<endl;
   }
  getch();
  return 0;
 }
//---------------------------------------------------------------------------
char bufrus[256];
char *rus(const char *text)
 {
  CharToOem(text, bufrus);
  return bufrus;
 }
//---------------------------------------------------------------------------

Результат работы программы:

Результат работы. Второй вариант. Двумерные массивы

Вариант 1
Вариант 3
error: Content is protected !!
Adblock
detector