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

Заполнить матрицу - C++

Восстановить пароль Регистрация
 
dmitriykladov95
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 48
17.12.2013, 17:30     Заполнить матрицу #1
Заполнить матрицу размера nхn целыми числами 1, 2, …, n2. зигзагом
http://s12.postimg.org/kho343tl9/098765.png
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
#include <iostream>
#include <iomanip>
#include <windows.h>
 
using namespace std;
 
int main()
{
    const int colum = 10; 
    const int row   = 10; 
    int array[100][100];
 
    int x, y,  
        value = 1; 
     for (int diag = 0; diag < colum; diag++)
    {
        if (diag % 2 == 0) 
        {
            x = 0; 
            y = diag; 
 
            while (y >= 0) 
            {
                array[x][y] = value; 
                value++;
                x++;     
                y--;    
            }
        }
        else 
        {
            x = diag; 
            y = 0; 
 
            while (x >= 0) 
            {
                array[x][y] = value; 
                value++;
                x -= 1;  
                y +=  1; 
            }
        }
    } 
 
    
    for (int diag = 1; diag < colum; diag++)
    {
        if (diag % 2 == 0)
        {
            x = 8; 
            y = diag;  
 
            while (y <= 8) 
            {
                array[x][y] = value;
                value++;
                x--; 
                y++; 
            }
        }
        else 
        {
            x = diag;
            y = 8;   
            while (x <= 8) 
            {
                array[x][y] = value;
                value++;
                x++; 
                y--; 
            }
        } 
    } 
    for (int ix = 0; ix < row; ix++)
    {
        for (int jx = 0; jx < colum; jx++)
            cout << setw(4) << array[ix][jx] << " ";
        cout << endl;
    }
 
    return 0;
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 17:30     Заполнить матрицу
Посмотрите здесь:

Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали C++
C++ Заполнить матрицу
C++ Заполнить матрицу
C++ Заполнить матрицу случайными числами. Развернуть матрицу на 90(градусов) против часовой стрелки
Заполнить матрицу C++
Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке C++
C++ Заполнить матрицу случайными числами. Разбить матрицу на квадраты размером 3х3. В центре каждого квадрата поме

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
17.12.2013, 20:01     Заполнить матрицу #2
лови:
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int x=0,y=0,value=1,column=0,sum=2,n=3,ssize;
    cout<<"Enter array size: ";
    cin>>n;
    ssize=n;
    cout<<endl;
    while(ssize>=10)
    {
        ssize/=10;
        sum++;
    }
    bool star=false;
    int array[n][n];
    while(value<=n*n)
    {
        if(column<=n&&star==false)
        {
            if(!(column%2))
            {
                for(int i=column;i>=0;--i)///четные
                {
                    array[y][x]=value;
                    value++;
                    if(x!=0)
                    {
                        x--;
                    }
                    y++;
                }
            }
            else
            {
                for(int i=0;i<=column;++i)///нечетные
                {
                    array[y][x]=value;
                    value++;
                    if(y!=0)
                    {
                       y--;
                    }
                    x++;
                }
            }
            column++;
            if(column==n)
            {
                if(!(column%2))//делится на 2
                {
                    y=1;
                    x=n-1;
                }
                else // не делится на 2
                {
                    y--;
                    x++;
                }
                star=true;
                column--;
                column--;
            }
        }
        else
        {
            if(!(column%2))
            {
                for(int i=column;i>=0;--i)///четные
                {
                    array[y][x]=value;
                    value++;
                    if(i==0)
                    {
                        x++;
                        break;
                    }
                    if(x!=0)
                    {
                        x--;
                    }
                    y++;
                }
            }
            else
            {
                for(int i=0;i<=column;++i)///нечетные
                {
                    array[y][x]=value;
                    value++;
                    if(i==column)
                    {
                        y++;
 
                        break;
                    }
                    if(y!=0)
                    {
                       y--;
                    }
                    x++;
                }
            }
            column--;
        }
    }
    for(y=0;y<n;++y)
    {
        for(x=0;x<n;++x)
        {
            cout.width(sum);
            cout<<array[y][x]<<" ";
        }
        cout<<endl;
    }
    return 0;
}
Yandex
Объявления
17.12.2013, 20:01     Заполнить матрицу
Ответ Создать тему
Опции темы

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