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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MilitaNt
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 21
#1

Расположить числа в квадрате змейкой - C++

30.06.2012, 22:35. Просмотров 898. Ответов 2
Метки нет (Все метки)

Кто сможет, помогите пожалуйста
Змей Горыныч убедительно просит расположить N2 чисел от 1 до N2 в квадрате змейкой.
Ввод. В единственной строке файла INPUT.TXT задано число N (1 ≤ N ≤ 50).
Вывод. Файл OUTPUT.TXT содержит N2 чисел по N чисел в строке в форме змейки.
Пример
Ввод
4
Вывод
1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2012, 22:35     Расположить числа в квадрате змейкой
Посмотрите здесь:
C++ Рандом числа в квадрате
C++ Получить первый элемент последовательности х,х квадрате,х в кубе,...больший числа.
Есть натуральное число, найти сумму произведений каждого числа в квадрате C++
C++ Пользователь ввел три целых числа, расположить эти числа в порядке убывания
Расположить числа по возрастанию C++
C++ Расположить три числа по возрастанию
C++ Расположить числа в определённом порядке с++
Расположить три целых числа по возрастанию C++
C++ Расположить четыре числа в порядке возрастания
Расположить в массиве числа в порядке убывания частоты встречаемости чисел C++
C++ в матрице, строку где все числа четные, расположить в обратном порядке.
C++ Не нарушая порядка следования нужно расположить в начале массива все четные числа а затем нечетные

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
03.07.2012, 11:45     Расположить числа в квадрате змейкой #2
Цитата Сообщение от MilitaNt Посмотреть сообщение
Кто сможет, помогите пожалуйста
Змей Горыныч убедительно просит расположить N2 чисел от 1 до N2 в квадрате змейкой.
Ввод. В единственной строке файла INPUT.TXT задано число N (1 ≤ N ≤ 50).
Вывод. Файл OUTPUT.TXT содержит N2 чисел по N чисел в строке в форме змейки.
Пример
Ввод
4
Вывод
1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16
Ну вы чего.. Олимпиадные задания с ACMP самому решать нужно > _ <"
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
04.07.2012, 15:20     Расположить числа в квадрате змейкой #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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#include<iostream>
#include<iomanip>       //для setw()
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Rus");        //русский язык
 
    int razmernost=0;
    int i=0, j=0;                   //i - номер строки, j-номер столбца
    int min=0,max=0;                //мин и мах элементы
    int number_diagonal=0;          //номер диагонали
 
    cout<<"Введите размерность матрицы (от 1 до 15):  "<<endl;
 
    cin>>razmernost;
 
    if(razmernost<=0)
        exit(0);
 
    //////////////////////выделяем память/////////////////////////
    int **matrix=new int*[razmernost];
 
    for(i=0;i<razmernost;i++)
    {
        matrix[i]=new int[razmernost];
 
        for(j=0;j<razmernost;j++)
        {
            matrix[i][j]=0;
        }
    }
    //////////////////////////////////////////////////////////////
 
 
 
 
    i=0;j=0;
    matrix[i][j]=1;             //инициализируем первый элемент значением 1
 
    if(razmernost>1)                //если размерность матрицы больше 1
    {
        max=razmernost*razmernost;
 
        i=j=razmernost-1;
        matrix[i][j]=max;       //инициализируем последний элемент значением квадрата
 
 
 
        ////////////////////////////заполняем первую половину диагонали/////////////////////
        min=2;
 
        number_diagonal=1;
 
        while(number_diagonal<razmernost)
        {
            if(number_diagonal%2)   //если номер диагонали нечетный
            {
                i=0;j=number_diagonal;
 
                matrix[i][j]=min;
                min++;
 
                while(j>0)
                {
                    i++;j--;
                    matrix[i][j]=min;
                    min++;
                }
            }
            else                    //иначе если четный
            {
                i=number_diagonal,j=0;
                
                matrix[i][j]=min;
                min++;
 
                while(i>0)
                {
                    i--;j++;
                    matrix[i][j]=min;
                    min++;
                }
            }
            number_diagonal++;
        }
        ///////////////////////////////////////////////////////////////////////////////
 
 
        /////////////////////////заполняем вторую половину диагонали//////////////////////
    
        number_diagonal-=2;
 
        int copy_i=0,copy_j=0;      //передвижение по строкам и столбцам
 
        while(number_diagonal>0)
        {
            if(number_diagonal%2)   //если нечетный номер диагонали
            {
                i=1+copy_i,j=razmernost-1;
 
                matrix[i][j]=min;
                min++;
 
                while( j>(1+copy_j) )
                {
                    i++;j--;
                    matrix[i][j]=min;
                    min++;
                }
 
                copy_i++;
                copy_j++;
            }
            else
            {
                i=razmernost-1,j=1+copy_j;
            
                matrix[i][j]=min;
                min++;
            
                while( i>(1+copy_i) )
                {
                    i--,j++;
                    matrix[i][j]=min;
                    min++;
                }
 
                copy_i++;
                copy_j++;
            }
            
            number_diagonal--;
        }
    }
    ///////////////////////////////////////////////////////////////
 
 
    ////////////////////////выводим змейку)////////////////
    for(i=0;i<razmernost;i++)
    {
        for(j=0;j<razmernost;j++)
        {
            cout<<setw(5)<<matrix[i][j];
        }
        cout<<endl;
    }
 
    //////////////////////////очищаем память//////////////
    for(i=0;i<razmernost;i++)
        delete [] matrix[i];
 
    delete [] matrix;
    //////////////////////////////////////////////////////
 
    return 0;
}
Миниатюры
Расположить числа в квадрате змейкой   Расположить числа в квадрате змейкой  
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru