Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2010, 13:35   #1
Катюшка_92
Пользователь
 
Регистрация: 23.05.2010
Сообщений: 10
По умолчанию исправить!!!

Составить программу, которая заполняет квадратную матрицу порядка n натуральными числами 1, 2, 3, .. ., n^2, записывая их в нее "по спирали".
например,для n=5 получаем матрицу:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
Выручите пожалуйста! (вот сама программа: нужно исправить чтобы n считало даже больше 100 ....) и вид был такой :
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

Сама программа :
#include <iostream>

using namespace std;

const int dx[] = {0,1,0,-1};
const int dy[] = {1,0,-1,0};
int a[100][100];

int main()
{
int n;
cout << "Enter n: ";
cin >> n;
for(int i = 1; i <= n; i++)
{
a[0][i] = -1;
a[i][0] = -1;
a[n+1][i] = -1;
a[i][n+1] = -1;
}
int x = 1, y = 1, d = 0;
for(int i = 1; i <= n*n; i++)
{
a[x][y] = i;
if(a[x+dx[d]][y+dy[d]] != 0)
d = (d+1)%4;
x += dx[d];
y += dy[d];
}
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
cout << a[i][j] << ' ';
cout << endl;
}
system("pause");
}
Катюшка_92 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправить ошибки dragun4ik Помощь студентам 3 06.02.2010 19:10
помогите исправить fenix-88 Помощь студентам 0 21.06.2009 18:58
Помогите исправить Virus' Помощь студентам 3 09.12.2008 17:21
помогите исправить Aivar Помощь студентам 12 11.11.2008 20:04
Исправить ошибку LLIypLLIyH Помощь студентам 5 16.06.2008 16:50