SimpleJack » 10 окт 2016, 21:31
Нужно заполнить матрицу следующим образом
1 8 9 16 17 24
2 7 10 15 18 23
3 6 11 14 19 22
4 5 12 13 20 21
Я додумался переставить элементы так, чтобы матрица заполнялось сверху вниз, но как сделать заполнение как в задании не знаю.
Код: Выделить всё
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int n, m, min = 0, sum = 0;
cout << "Введите количество рядков";
cin >> n;
cout << "Введите количество столбцов";
cin >> m;
int *a;
a = new int[n*m];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cin >> a[i*m + j];
}
cout << endl;
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cout << a[j*m + i] << " ";
}
cout << endl;
}
delete[] a;
cin.get();
cin.get();
system("pause");
return 0;
}
Нужно заполнить матрицу следующим образом
1 8 9 16 17 24
2 7 10 15 18 23
3 6 11 14 19 22
4 5 12 13 20 21
Я додумался переставить элементы так, чтобы матрица заполнялось сверху вниз, но как сделать заполнение как в задании не знаю.
[code]#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int n, m, min = 0, sum = 0;
cout << "Введите количество рядков";
cin >> n;
cout << "Введите количество столбцов";
cin >> m;
int *a;
a = new int[n*m];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cin >> a[i*m + j];
}
cout << endl;
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cout << a[j*m + i] << " ";
}
cout << endl;
}
delete[] a;
cin.get();
cin.get();
system("pause");
return 0;
}[/code]