online: 1; azi: 1157; total: 53163 Manual clasa a xi a - Tehnici de programare - Divide et impera

Manual clasa a Xi a

Tehnici de programare

Divide et impera

Într-o matrice pătrată cu dimensiunea n să se interschimbe linia p cu coloana q.
# include < iostream >
using namespace std ;
void swapRowCol ( int **a, int n, int p, int q, int start, int end ) {
if (start > end ) {
return ;
}
int mid = (start + end ) / 2 ;
for ( int i = start; i <= end ; i++) {
swap (a[i][p], a[q][i]);
}
swapRowCol (a, n, p, q, start, mid );
swapRowCol (a, n, p, q, mid + 1 , end );
}
int main () {
int n, p, q;
cout << " Introduceti dimensiunea matricei: " ;
cin >> n;
int **a = new int *[n];
for ( int i = 0 ; i < n; i++) {
a[i] = new int [n];
for ( int j = 0 ; j < n; j++) {
cout << "a[" << i << "][" << j << "] = " ;
cin >> a[i][j];
}
}
cout << " Introduceti linia p: " ;
cin >> p;
cout << " Introduceti coloana q: " ;
cin >> q;
swapRowCol (a, n, p, q, 0 , n - 1 );
// Afisarea matricei cu linia p si coloana q interschimbate
for ( int i = 0 ; i < n; i++) {
for ( int j = 0 ; j < n; j++) {
cout << a[i][j] << " " ;
}
cout << endl ;
}
for ( int i = 0 ; i < n; i++) {
delete [] a[i];
}
delete [] a;
return 0 ;
}