Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int main()
- {
- int n,m;
- cout << "\nВведите размеры матрицы через прoбел: ";
- cin >> n >> m;
- int matrix[n][m];
- cout << "\nДана матрица размером "<< n << "x" << m <<":\n";
- for (int i = 0; i <n; ++i)
- {
- for (int j = 0; j < m; ++j)
- {
- matrix[i][j] = rand()%9+1;
- cout << matrix[i][j] << " ";
- }
- cout << "\n";
- }
- cout << "\n\nНеобходимо упорядочить строки матрицы \nВыберите принцип упорядочивания:" <<endl;
- cout << "1. По неубыванию значения первых элементов строк" <<endl;
- cout << "2. По невозрастанию сумм элементов строк"<<endl;
- cout << "3. По неубыванию значений наименьших элементов строк"<<endl;
- cout << "4. По невозрастанию значений наибольших элементов строк"<<endl;
- int type = 1;
- cin >> type;
- if(type < 1 or type > 4) type = 1;
- int temp = 0;
- for( int k = 0; k < n; k++ )
- {
- for ( int i = 0; i < ( n - 1 ); i++ )
- {
- int sum1 = 0, sum2 = 0, min1 = 10000, min2 = 10000, max1 = -10000, max2 = -10000;
- switch(type){
- case 2:
- for( int j = 0 ; j < m; j++ )
- {
- sum1+= matrix[ i ][ j ];
- sum2+= matrix[ i+1 ][ j ];
- }
- if( sum1 < sum2 )
- {
- for( int j = 0 ; j < m; j++ )
- {
- temp = matrix[ i ][ j ];
- matrix[ i ][ j ] = matrix[ i + 1 ][ j ];
- matrix[ i + 1 ][ j ] = temp;
- }
- }
- break;
- case 3:
- for( int j = 0 ; j < m; j++ )
- {
- if(matrix[ i ][ j ] < min1) min1 = matrix[ i ][ j ];
- if(matrix[ i + 1 ][ j ] < min2) min2 = matrix[ i + 1 ][ j ];
- }
- if( min1 > min2 )
- {
- for( int j = 0 ; j < m; j++ )
- {
- temp = matrix[ i ][ j ];
- matrix[ i ][ j ] = matrix[ i + 1 ][ j ];
- matrix[ i + 1 ][ j ] = temp;
- }
- }
- break;
- case 4:
- for( int j = 0 ; j < m; j++ )
- {
- if(matrix[ i ][ j ] > max1) max1 = matrix[ i ][ j ];
- if(matrix[ i + 1 ][ j ] > max2) max2 = matrix[ i + 1 ][ j ];
- }
- if( max1 < max2 )
- {
- for( int j = 0 ; j < m; j++ )
- {
- temp = matrix[ i ][ j ];
- matrix[ i ][ j ] = matrix[ i + 1 ][ j ];
- matrix[ i + 1 ][ j ] = temp;
- }
- }
- break;
- default:
- if( matrix[ i ][ 0 ] > matrix[ i + 1 ][ 0 ] )
- {
- for( int j = 0 ; j < m; j++ )
- {
- temp = matrix[ i ][ j ];
- matrix[ i ][ j ] = matrix[ i + 1 ][ j ];
- matrix[ i + 1 ][ j ] = temp;
- }
- }
- }
- }
- }
- cout << "\n\nРезультат:\n";
- for (int i = 0; i <n; ++i)
- {
- for (int j = 0; j < m; ++j)
- {
- cout << matrix[i][j] << " ";
- }
- cout << "\n";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement