Вариант 1

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

  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,p,i,j,k,cnt=0,counter=0;
  bool sort=1,not_null;
  int temp,max;
  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];
  p=m*n;
  int l=0;
  int *c=new int[l];
  int *b=new int[p];
//---------------------------------------------------------------------------
  cout<<rus("\nВведите элементы массива:")<<endl<<endl;
  for(i=p=0;i<n;i++)
   {
    for(j=0;j<m;j++)
     {
      a[i][j]=-5+random(20);
      cout<<setw(5)<<a[i][j];
      b[p++]=a[i][j];
     }
    cout<<endl;
   }
//---------------------------------------------------------------------------
  for(i=0;i<n;i++)
   {
    not_null=true;
    for(j=0;j<m;j++)
    if(a[i][j]==0)
     {
      not_null=false;
      break;
     }
    if(not_null)
    counter++;
   }
  cout<<rus("\nКоличество строк не содержащих ни одного 0 элемента: ")<<counter;
//---------------------------------------------------------------------------
  while(sort)
   {
    sort=0;
    for(k=0;k<p-1;k++)
    if(b[k]>b[k+1])
     {
      temp=b[k];
      b[k]=b[k+1];
      b[k+1]=temp;
      sort=1;
     }
   }
  for(k=1;k<p;k++)
   {
    if(b[k]==b[k+1])
     {
      c[l++]=b[k];
      cnt++;
     }
   }
  for(l=0;l<cnt;l++)
   {
    if(c[l]>max)
    max=c[l];
   }
  cout<<rus("\nМаксимальное число встречающееся в матрице более одного раза: ")<<max;
  getch();
  return 0;
 }
//---------------------------------------------------------------------------
char bufrus[256];
char *rus(const char *text)
 {
  CharToOem(text, bufrus);
  return bufrus;
 }
//---------------------------------------------------------------------------

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

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

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