Форум программистов, компьютерный форум CyberForum.ru

Заполнить массив 3х3 числами по возрастанию, по спирали начиная с центра - C++

Восстановить пароль Регистрация
 
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 338
02.07.2014, 15:00     Заполнить массив 3х3 числами по возрастанию, по спирали начиная с центра #1
Заполнить массив 3х3 числами по возрастанию, по спирали начиная с центра.
7 8 9
6 1 2
5 4 3
Т.е. по часовой стрелке, а у меня получилось против часовой.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<iostream>
#include<iomanip>
 
using namespace std;
 
int main()
{
    int n=3, x=n-1, y=n, d=-1, r=9, a[n][n];
    for(int i=x; i>=0;d*=-1)
  {
    for(int j=i; j>=0; --j) a[x][y+=d]=r--;
    for(int j=--i; j>=0; --j) a[x+=d][y]=r--;
  }
  // Вывод
  for (int i=0; i<n; i++)
  {
        for (int j=0; j<n; j++)
        {
            printf("%3d ", a[i][j]);
        }
        printf("\n");
  }
    system("pause");
    return 0;
}
Добился
543
612
789
Помогите скорректировать. На самом деле, у меня заполняется с конца, но так думаю будет лучше.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2014, 15:00     Заполнить массив 3х3 числами по возрастанию, по спирали начиная с центра
Посмотрите здесь:

C++ Заполнить массив случайными числами по возрастанию и убыванию
C++ Текст записывается в квадратную матрицу, а затем прочитывается по спирали, начиная с центра
Заполнить матрицу из центра по спирали C++
Заполнить массив простыми числами по возрастанию C++
Заполнить массив числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Гром
 Аватар для Гром
199 / 118 / 10
Регистрация: 20.03.2009
Сообщений: 1,075
Записей в блоге: 15
02.07.2014, 15:16     Заполнить массив 3х3 числами по возрастанию, по спирали начиная с центра #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вам нужно просто отразить результат относительно горизонтальной линии, заменив соответствующую строку на эту:
C++
1
2
  // Вывод
  for (int i=n-1; i>=0; i--)
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 338
02.07.2014, 15:52  [ТС]     Заполнить массив 3х3 числами по возрастанию, по спирали начиная с центра #3
Может кто помочь в паскаль перевести у меня не получается?
Памирыч
Администратор
 Аватар для Памирыч
20464 / 8516 / 1023
Регистрация: 11.04.2010
Сообщений: 10,988
03.07.2014, 08:08     Заполнить массив 3х3 числами по возрастанию, по спирали начиная с центра #4
b0nny, зачем Вам задача на двух языках?
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 338
03.07.2014, 09:23  [ТС]     Заполнить массив 3х3 числами по возрастанию, по спирали начиная с центра #5
Мне уже перевели на форуме паскаля. Нужно на двух мне писать.
Памирыч
Администратор
 Аватар для Памирыч
20464 / 8516 / 1023
Регистрация: 11.04.2010
Сообщений: 10,988
03.07.2014, 09:48     Заполнить массив 3х3 числами по возрастанию, по спирали начиная с центра #6
b0nny, понял.
Yandex
Объявления
03.07.2014, 09:48     Заполнить массив 3х3 числами по возрастанию, по спирали начиная с центра
Ответ Создать тему
Опции темы

Текущее время: 16:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru