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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка: error C2783: 'T __cdecl sumF(void)' : could not deduce template argument for 'T' http://www.cyberforum.ru/cpp-beginners/thread617118.html
#include <iostream> #include <conio.h> using namespace std; int a; template< typename T > T sumF() { T s=0; for(i=0,j=b;i<c;i++,j++)
C++ Почему распечатка не заканчивается одной строкой? #include <cstdio> #include <cstdlib> #include <iostream> using namespace std; int main(int nNumberofArgs, char* pszArgs) { int n1; cout << "Enter n1: "; http://www.cyberforum.ru/cpp-beginners/thread617117.html
Шаблоны функции C++
Правильно ли я оформила программу в виде шаблона функции? программа просто в виде функции #include "iostream.h" #include "conio.h" int a; int i=0, j=0, n=10, m=10, c=1;
Регулярные выражения из Perl/PHP в C++ C++
Необходимо перенести либо из Perl, либо из PHP (код работает одинаково) функцию с регулярными выражениями на C++. Perl: my $txt = $prefix.shift; $txt =~ s/\s*;\s*/;\n/g; $txt =~ s/^\s*//; $txt =~ s/ +/ /g; $txt =~ s/: (\d+) (\d+)/sprintf ": %2d %2d", $1, $2/ge; $txt =~ s/^2:.*\n//gm; $txt =~ s/^1:(.+)\n/1:$1\n2:$1\n/gm;
C++ Подскажите книгу по С++ http://www.cyberforum.ru/cpp-beginners/thread617089.html
Подскажите хорошую книгу по теории С++ с примерами (кроме Павловской).))
C++ Разбивка строчного массива Добрый день. Имеется в наличии массив string * arr=new string Внутри него находится следующие символы: 34 61 36 11 17 34 76 99 45 65 72 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 Возможно ли разбить этот массив на 2 таких, и если да, то как: подробнее

Показать сообщение отдельно
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
04.07.2012, 15:20     Расположить числа в квадрате змейкой
Актуально еще? Здесь только без вывода в файл...

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;
}
Миниатюры
Расположить числа в квадрате змейкой   Расположить числа в квадрате змейкой  
 
Текущее время: 04:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru