/* * matrices.cpp * * Created on: 19.11.2013 * Author: trifon */ #include using namespace std; const int MAX = 100; int main() { int a[MAX][MAX]; int m, n; cout << "m = ";cin >> m; cout << "n = ";cin >> n; for(int i = 0; i < m; i++) for(int j = 0; j < n; j++) { cout << "a[" << i << "][" << j << "] = "; cin >> a[i][j]; } /* * * Транспониране на матрица for(int i = 0; i < m-1; i++) for(int j = i+1; j < n; j++) { int x = a[i][j]; a[i][j] = a[j][i]; a[j][i] = x; } */ // За домашно: за правоъгълна for(int j = 0; j < n; j++) { // за всеки стълб // трябва да намерим сумата му int s = 0; for(int i = 0; i < m; i++) s += a[i][j]; cout << "S[" << j << "] = " << s << endl; } cout << "По редове:" << endl; for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) cout << a[i][j] << '\t'; cout << endl; } int x; cout << "x = "; cin >> x; // всички редове, в които x се среща for(int i = 0; i < m; i++) { int j = 0; while (j < n && a[i][j] != x) j++; // да - a[i][j] == x // не - j == n if (j < n) cout << x << " се среща в ред " << i << endl; } int p = 1; for(int j = 0; j < n; j++) { int min = a[0][j]; for(int i = 1; i < m; i++) if (a[i][j] < min) min = a[i][j]; p *= min; } cout << "p = " << p << endl; for(int k = 0; k < n; k++) { // обхождаме k-ти диагонал // т.е. такива i, j, ,така че j - i == k for(int i = 0; i < n-k; i++) cout << a[i][i+k] << endl; } /* cout << "По стълбове:" << endl; for(int j = 0; j < n; j++) { for(int i = 0; i < m; i++) cout << a[i][j] << '\t'; cout << endl; } int c[4][5] = { { 1, 2}, {3, 4, 5, 6}, {7, 8, 9}, {10} }; for(int i = 0; i < 4; i++) { for(int j = 0; j < 5; j++) cout << c[i][j] << '\t'; cout << endl; } */ int b[MAX][MAX], c[MAX][MAX]; for(int i = 0; i < m; i++) for(int j = 0; j < n; j++) { cout << "b[" << i << "][" << j << "] = "; cin >> b[i][j]; } // тук се случва магия for(int i = 0; i < m; i++) for(int j = 0; j < n; j++) if (i % 2 == j % 2) c[i][j] = a[i][j]; else c[i][j] = b[i][j]; for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) cout << c[i][j] << '\t'; cout << endl; } return 0; }