freeExec, Здравствуйте, всё получилось (код ниже), но теперь преподаватель хочет чтобы память для матрицы выделялась динамически, исходя из размера который вводится. Не подскажите как можно переделать? Если просто изменить ввод в сишном файле, то не меняются строки.
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <iomanip>
#include <conio.h>
extern "C" void asm_proc(int *a, int); // описание прототипа ASM-подпрограммы
using namespace std;
void Input(int arr[3][3]);
void Output(int arr[3][3]);
int main()
{
setlocale(LC_ALL, "russian");
int a[3][3] = { 0 };
cout << "Задание: Если сумма элементов первой строки = сумме элементов первого столбца, " << endl << "обмнять элементы первой строки с элементами первого столбца " << endl << endl;
cout << "Исходный массив: " << endl;
Input(a);
Output(a);
//Obm(a);
asm_proc(&a[0][0], 3);
cout << "Массив после оброботки: " << endl;
Output(a);
system("pause");
return 0;
}
void Input(int arr[3][3])//функция заполнения массива с входными параметрами: массив и ограничение
{
srand(time(NULL)); // "инициализация" генератора случайных чисел
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++)
arr[i][j] = rand() % 10;
}
}
void Output(int arr[3][3])//функция вывода массива в консоль
{
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++)
cout << setw( 5) << arr[i][j];
cout << endl;//переход на следующую строку
}
}
freeExec, А как избавиться от двойных индексов? Просто записать первую строку и столбец как два одномерных массива? но мне нужно по условию в ассемблере работать именно с двумерным массивом