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