Se consideră o matrice pătrată cu dimensiunea nxn şi un vector cu n elemente. Numărul n şi elementele matricei şi ale vectorului se citesc de la tastatură. Să se verifice dacă elementele vectorului formează o linie sau o coloană a matricei. În caz afirmativ să se afişeze un mesaj în care să se precizeze numărul liniei şi/sau al coloanei. 28

Pentru a verifica dacă elementele vectorului formează o linie sau o coloană a matricei putem verifica dacă toate elementele vectorului sunt egale cu elementele de pe aceeași poziție dintr-o anumită linie sau coloană a matricei.

Pentru a implementa această verificare, putem parcurge matricea și vectorul și să comparăm elementele de pe aceeași poziție. Dacă găsim o poziție în care elementul din vector nu este egal cu elementul corespunzător din matrice, putem opri verificarea pentru acea linie/coloană și să trecem la verificarea următoarei linii/coloane.

Dacă nu găsim nicio poziție în care elementele vectorului să nu fie egale cu elementele corespunzătoare din matrice, putem afișa un mesaj care indică faptul că vectorul formează o linie sau o coloană.

#include <iostream>

using namespace std;

const int MAX = 100;

int main() {

    int n, mat[MAX][MAX], vec[MAX];

    // Citirea dimensiunii si a elementelor matricei si vectorului

    cout << „Introduceti dimensiunea matricei si a vectorului: „;

    cin >> n;

    cout << „Introduceti elementele matricei:\n”;

    for (int i = 0; i < n; i++) {

        for (int j = 0; j < n; j++) {

            cin >> mat[i][j];

        }

    }

    cout << „Introduceti elementele vectorului:\n”;

    for (int i = 0; i < n; i++) {

        cin >> vec[i];

    }

    // Verificarea daca vectorul formeaza o linie sau o coloana a matricei

    int row = -1, col = -1;

    for (int i = 0; i < n; i++) {

        bool is_row = true, is_col = true;

        for (int j = 0; j < n; j++) {

            if (vec[j] != mat[i][j]) {

                is_row = false;

            }

            if (vec[j] != mat[j][i]) {

                is_col = false;

            }

        }

        if (is_row) {

            row = i;

        }

        if (is_col) {

            col = i;

        }

    }

    // Afisarea rezultatului

    if (row != -1 && col != -1) {

        cout << „Vectorul formeaza atat o linie, cat si o coloana a matricei.\n”;

    } else if (row != -1) {

        cout << „Vectorul formeaza linia ” << row << ” a matricei.\n”;

    } else if (col != -1) {

        cout << „Vectorul formeaza coloana ” << col << ” a matricei.\n”;

    } else {

        cout << „Vectorul nu formeaza o linie sau o coloana a matricei.\n”;

    }

    return 0;

}

Programul începe prin citirea numărului n, dimensiunea matricei pătrate. Apoi, se citesc elementele matricei și ale vectorului, folosind două bucle for pentru a parcurge fiecare rând și fiecare coloană a matricei.

Următorul pas este verificarea dacă elementele vectorului formează o linie sau o coloană a matricei. Se face acest lucru comparând suma elementelor vectorului cu suma elementelor corespunzătoare de pe fiecare linie și coloană a matricei.

Dacă se găsește o linie sau o coloană în care suma elementelor corespunde cu suma elementelor vectorului, se afișează mesajul corespunzător, care indică numărul liniei și/sau al coloanei.

În caz contrar, se afișează un mesaj care indică faptul că vectorul nu formează o linie sau o coloană a matricei.

Similar Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *