Вариант 3

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

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

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

//---------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
#include<windows.h>
#include<iomanip.h>
#include<stdlib.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,ipos=-1,maxcnt=0,icnt=-1; //объявление переменных
  cout<<rus("Введите размерность массива:")<<endl;
  cout<<rus("\nВведите количество строк:    n=");cin>>n;//ввод кол строк
  cout<<rus("Введите количество столбцов: m=");cin>>m;  //ввод кол столбцов
  int **a=new int*[n];             //объявление двумерной 
  for(i=0;i<n;i++)a[i]=new int [m];//матрицы  а
//---------------------------------------------------------------------------
  cout<<rus("\nВведите элементы массива:")<<endl<<endl;
  for(i=0;i<n;i++)
   {
    for(j=0;j<m;j++)
     {
      a[i][j]=-5+random(10);
      cout<<setw(4)<<a[i][j];
     }
    cout<<endl;
   }
//---------------------------------------------------------------------------
  for(j=0;j<m;j++)    //поиск
   {                  //кол-ва
    for(i=0;i<n;i++)  //столбцов
    if(a[i][j]==0)    //содержащих
     {                //хотя бы один 0 элемент
      cnt++;          //счетчик
      break;
     }
   }
  cout<<rus("\nКоличество столбцов, содержащих хотя бы один 0 элемент: ")<<cnt<<endl;//вывод
//---------------------------------------------------------------------------
  for(i=0;i<n;i++)              //поиск
   {
    cnt=0;                      //номера
    for(j=1;j<m;j++)
     {                          //строки
      if(a[i][j]==a[i][j-1])    //в которой
      cnt++;                    //находится
      else
       {                        //самая
        if(cnt>maxcnt)
         {                      //длинная
          maxcnt=cnt;
          ipos=i;               //серия
          icnt++;               //счетчик
         }                      //одинаковых
        cnt=0;
       }                        //элементов
     }
    if(cnt>maxcnt)
     {
      maxcnt=cnt;
      ipos=i;
      icnt++;                  //счетчик
     }
   }
  if(-1==icnt)cout<<rus("\nСтрок с одинаковыми элементами нет!")<<endl;
  else cout<<rus("\nНомер строки, в котором находится самая длинная серия одинаковых элементов: ")<<(ipos+1);
  getch();
  return 0;
 }
//---------------------------------------------------------------------------
char bufrus[256];
char *rus(const char *text)
 {
  CharToOem(text, bufrus);
  return bufrus;
 }
//---------------------------------------------------------------------------

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

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

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