1. В данной матрице удалите любую одну строку с наибольшим количеством нулей.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
int itmathrepetitor_ru() { int** a; int n,m; cout<<"input n: "; cin>>n; cout<<"input m: "; cin>>m; a=new int* [n]; for (int i=0; i<n; i++) a[i]=new int [m]; for (int i=0; i<n; i++) for (int j=0; j<m; j++) a[i][j]=rand()%2; cout<<"Start matrix: "<<endl; for (int i=0; i<n; i++) { for (int j=0; j<m; j++) cout<<a[i][j]<<" "; cout<<endl; } // www.itmathrepetitor.ru int countmax=0; int imax=-1; for (int i=0; i<n; i++) { int count=0; for (int j=0; j<m; j++) if (a[i][j]==0) count++; if (count>countmax) { countmax=count; imax=i; } } // www.itmathrepetitor.ru cout<<"countmax = "<<countmax<<endl; cout<<"line = "<<imax<<endl; // удаление строки с номером imax for (int i=imax+1; i<n; i++) { for (int j=0; j<m; j++) a[i-1][j]=a[i][j]; } n--; cout<<"End matrix: "<<endl; for (int i=0; i<n; i++) { for (int j=0; j<m; j++) cout<<a[i][j]<<" "; cout<<endl; } for (int i=0; i<n; i++) delete [] a[i]; delete [] a; |
2. В матрице удалите столбцы с положительными суммами элементов, а затем в качестве первого вставьте столбец из минимальных элементов соответствующих строк.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
int itmathrepetitor_ru() { int** a; int n,m; cout<<"input n: "; cin>>n; cout<<"input m: "; cin>>m; // www.itmathrepetitor.ru a=new int* [n]; for (int i=0; i<n; i++) a[i]=new int [m+1]; for (int i=0; i<n; i++) for (int j=0; j<m; j++) a[i][j]=-5+rand()%12; cout<<"Start matrix: "<<endl; for (int i=0; i<n; i++) { for (int j=0; j<m; j++) cout<<a[i][j]<<" "; cout<<endl; } // www.itmathrepetitor.ru for (int j=0; j<m; j++) { int sum=0; for (int i=0; i<n; i++) sum+=a[i][j]; cout<<"sum = "<<sum<<endl; if (sum>0) { //удаление j столбца for (int k=j+1; k<m; k++) { for (int i=0; i<n; i++) a[i][k-1]=a[i][k]; } m--; j--; } } for (int j=m-1; j>=0; j--) { for (int i=0; i<n; i++) a[i][j+1]=a[i][j]; } m++; for (int i=0; i<n; i++) { int min=a[i][1]; for (int j=1; j<m; j++) if (a[i][j]<min) min=a[i][j]; a[i][0]=min; } cout<<"End matrix: "<<endl; for (int i=0; i<n; i++) { for (int j=0; j<m; j++) cout<<a[i][j]<<" "; cout<<endl; } for (int i=0; i<n; i++) delete [] a[i]; delete [] a; |
1)Постановка задачи:
Ввести двумерный целочисленный массив m x n. Определить максимальный элемент в каждом столбце и распечатать.
Листинг программы:
#include
пользуйтесь http://codepen.io/ и присылайте ссылку на ваш код