C/C++

Преобразование матрицы в строку по схеме

Преобразовать матрицу в строку по схеме под буквой б
Tima Azhimamatov
Tima Azhimamatov
92
#include < iostream >

using namespace std;

int main() {
int sizex, sizey;
cin >> sizex >> sizey; // ввод размера массива
int** array = new int* [sizex];
for (int i = 0; i < sizex; i++) array[i] = new int[sizey]; //создание

for (int i = 0; i < sizex; i++) //заполнение
for (int j = 0; j < sizey; j++)
array[i][j] = rand() % 101 - 50;

for (int i = 0; i < sizex; i++) {//печать
for (int j = 0; j < sizey; j++) cout << array[i][j] << " ";
cout << endl;
}

int i = 0, j = 0, it = 0; //it - итератор строки, i j - исходного массива
int* arraystring = new int[sizex * sizey]; //новый массив в виде строки
while (it < sizex * sizey) //цикл заполнения
{
arraystring[it] = array[i][j];
if (it % sizex == sizex - 1) { //если арошли один столбец то
j++; it++; continue;//перейти на следующий столбец и в начало цикла
}
j%2? i-- : i++; //в зависимости от текущего столбца двигаться вниз или вверх по нему.

it++;
}
cout << "\n\n\n";
for (int i = 0; i < sizex * sizey; i++) cout << arraystring[i] << " "; //печать строки

//тут могла бы быть ваше реклама или освобождение памяти от массивов. но это не существенно.
//см. delete []
}
АК
Алексей Карнаухов
51 411
Лучший ответ