Дана целочисленная прямоугольная матрица. Определить:
- количество столбцов, содержащих хотя бы один нулевой элемент;
- номер строки, в которой находится самая длинная серия одинаковых элементов.
Код программы:
//--------------------------------------------------------------------------- #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; } //---------------------------------------------------------------------------
Результат работы программы: