Как из функции add_matrix_A
и add_matrix_B
предать N и M
в функцию matrix_C
?
#include<iostream> #include<Windows.h> using namespace std; void menu() { system("cls"); cout << "\n"; cout << "Что вы хотите сделать?\n"; cout << "1. Ввести матрицу A\n"; cout << "2. Ввести матрицу B\n"; cout << "3. Вычислить матрицу C=A*B и транспонировать\n"; cout << "4. Умножить матрицу A на k\n"; cout << "5. Умножить на матрицу B на транспонированную C\n"; cout << "6. Выполнить операцию k*A+B*CT\n"; cout << "7. Выход\n"; cout << "\n"; cout << ">>> "; } void add_matrix_A() { system("cls"); cout << "Ввод матрицы A:" << endl << endl; int i, j, N, M, a[20][20]; cout << "Количество строк: "; cin >> N; cout << "Количество столбцов: "; cin >> M; cout << "\nВведите матрицу A:" << endl; for (i = 0; i < N; i++) { for (j = 0; j < M; j++) { cin >> a[i][j]; } } cout << "\nМатрица A:" << endl; for (i = 0; i < N; i++) { for (j = 0; j < M; j++) { cout << a[i][j] << "\t"; } cout << endl; } } void add_matrix_B() { system("cls"); cout << "Ввод матрицы B:" << endl << endl; int i, j, N, M, b[20][20]; cout << "Количество строк: "; cin >> N; cout << "Количество столбцов: "; cin >> M; cout << "\nВведите матрицу B:" << endl; for (i = 0; i < N; i++) { for (j = 0; j < M; j++) { cin >> b[i][j]; } } cout << "\nМатрица B:" << endl; for (i = 0; i < N; i++) { for (j = 0; j < M; j++) { cout << b[i][j] << "\t"; } cout << endl; } } void matrix_C() { system("cls"); int a[20][20], b[20][20]; cout << "Вычисление матрицы C=A*B" << endl << endl; int i, j, k, c[20][20]; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { c[i][j] = 0; for (k = 0; k < N; k++) c[i][j] += a[i][k] * b[k][j]; } cout << "\nМатрица C:" << endl; for (i = 0; i < N; i++) { for (j = 0; j < M; j++) { cout << c[i][j] << "\t"; } cout << endl; } } } int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); int variant, N, M; do { menu(); cin >> variant; switch (variant) { case 1: add_matrix_A(); break; case 2: add_matrix_B(); break; case 3: matrix_C(); } if (variant != 7) { system("pause"); } } while (variant !=7); system("pause"); return 0; }