Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Матрицы помогите.........кто может

Автор: Kobra 27.11.2007 1:30

Прикрепленное изображение Получить целочисленную квадратную матрицу порядка N, элементами которой являются числа 1, 2, 3, … , расположенные в ней по спирали:

Автор: volvo 27.11.2007 3:23

#include <iostream>
#include <iomanip>

using namespace std;

int main() {
const int n = 6;
int mx[n][n];

int i = 1, j = 1, k = 1;
int c = 0;

do {
while(j <= n - c) mx[i - 1][j++ - 1] = k++;
i++; j--;

while(i <= n - c) mx[i++ - 1][j - 1] = k++;
j--; i--;

while(j >= 1 + c) mx[i - 1][j-- - 1] = k++;
c++; j++; i--;

while(i >= 1 + c) mx[i-- - 1][j - 1] = k++;
j++; i++;
} while(c <= n / 2);

for(int i = 0; i < n; i++) {
cout << endl;
for(int j = 0; j < n; j++) {
cout << setw(3) << mx[i][j] << " ";
}
}
return 0;
}

(дословный перевод с найденной здесь же на форуме программы на Паскале)

Автор: Kobra 5.12.2007 21:17

Спасибо огромное за решение задачи......
Но вот мне надо сделать чтобы порядок матрицы, N, вводилось с клавиатуры!

Автор: volvo 6.12.2007 2:03

Ну, так сделай:

// Вместо этих двух строк:
// const int n = 6;
// int mx[n][n];

// Пишешь вот эти три:
int n;
cin >> n;
vector< vector<int> > mx(n, vector<int>(n));

Дальше - все остается без изменений... Только не забудь подключить после всех include-ов еще и
#include <vector>

Автор: Kobra 9.12.2007 17:06

спасибочки большое, а можно выложить еще одну задачку, а то никак не получается?