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

Матрица змейкой - C++

Восстановить пароль Регистрация
 
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
06.03.2012, 16:31     Матрица змейкой #1
Пытаюсь написать решение для задачи, чтобы выводила матрицу в таком виде
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2012, 16:31     Матрица змейкой
Посмотрите здесь:

Заполнение матрици змейкой C++
Turbo C++(матрица змейкой) C++
C++ Заполнение змейкой, массив не 2D!
Масив типа змейкой C++
C++ Заполнение змейкой
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
06.03.2012, 16:32  [ТС]     Матрица змейкой #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
#include <iostream>
using namespace std;
int main()
{
        double *a,**b;
        int i,z,j,t,n;
                z=0;
                cin>>n;
                a=new double [n*n];
                b=new double *[n];
                for (i=0;i<n;i++) b[i] = new double [n];
        for (i=0;i<n*n;i++)
        {
                cout<<"a["<<i<<"]= ";
                cin>>a[i];
        }
        for (i=0;i<n*n;i++) cout<<a[i]<<" ";
        cout<<endl<<endl;
                for (i=0;i<n;i++)
                {
                        t=i;
                        for (j=0;j<=i;j++)
                        {
                                b[t--][j]=a[z++];
                        }
                }
 
                for (j=1;j<n;j++)
                {
                        t=j;
                        for (i=n-1;i>=j;i--)
                        {
                                b[i][t]=a[z++];
                                t++;
                        }
                }
                for (i=0;i<n;i++)
                 {
                         for (j=0;j<n;j++) cout<<b[i][j]<<" ";
                         cout<<endl;
                 }
        cin>>i;
        return 0;
}
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
09.03.2012, 23:57     Матрица змейкой #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
#include <iostream>
#include <iomanip>
 
const int N = 5;
 
void PrintingMatrix ( int **a, const int n1 )
{
    int b;
    for ( int i = 0; i < n1; i++ )
    {
        for ( int j = 0; j < n1; j++ )
            std::cout << std::setw ( 3 ) << a [ i ][ j ];
        std::cout << std::endl;
    }
    std::cout << std::endl;
}
 
void GetMatrix ( int **a, const int n1 )
{
    int k = 1;
 
    for ( int diagonal = 1; diagonal <= n1; diagonal++ )
    {
        if ( diagonal & 1 )
            for ( int i = diagonal - 1; i >= 0; i-- )
                a [ i ][ diagonal - i - 1 ] = k++;
        else
            for ( int i = 0; i < diagonal; i++ )
                a [ i ][ diagonal - i - 1 ] = k++;
    }
 
    for ( int i = n1 - 1; i >= 1; i-- )
        for ( int j = n1 - i; j < n1; j++ )
            a [ i ][ j ] = 0;
    
}
 
int main()
{
    int **Matrix  = new int *[ N ], *Array = new int [ N ];
 
    for ( int index = 0; index < N; index++ )
        Matrix [ index ] = new int [ N ];
 
    GetMatrix ( Matrix, N );
    PrintingMatrix ( Matrix, N );
 
    for ( int index = 0; index < N; index++ )
        delete []Matrix [ index ];
 
    delete []Matrix;
 
    return 0;
}
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
10.03.2012, 00:08  [ТС]     Матрица змейкой #4
Ну кто нить может точно сделать((((
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.03.2012, 12:36     Матрица змейкой #5
Вот, наконец то получилось!


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
#include <iostream>
 
using namespace std;
 
int main()
{
    cout << "======================================================\n";
    cout << "Name:   Zmeika\n";
    cout << "Desc:   Stroit zmeiku iz cikla \"for\"\n";
    cout << "Author: Programina:)\n";
    cout << "10 marta 2012\n";  
    cout << "======================================================\n";
    cout << "\n";
    
    int x = 0;
    int y = 0;
    int i = 0;
    
    for ( y = 0; y < 20; y ++ )     
    {
        if  ( y >=  0 & y <  5 )    { cout << "x"; }
        else if ( y >= 10 & y < 15 )    { cout << "x"; }
        else                { cout << " "; }            
    }   
    
    cout << "\n";   
                
    for ( x = 0; x < 20; x ++ )     
    {   
        for ( y = 0; y < 40; y ++ )     
        {
            if ( y < 20 )
            {           
                if ( y >= 4-i & y < 5-i ) 
                {
                    cout << "x";
                }           
                else if ( y >=  9-i & y < 10-i ) 
                {
                    cout << "x";
                }
                else if ( y >= 14-i & y < 15-i ) 
                {
                    cout << "x";
                }
                else if ( y >= 19-i & y < 20-i ) 
                {
                    cout << "x";
                }
                else if ( y >= 24-i & y < 25-i ) 
                {
                    cout << "x";
                }                               
                else if ( y >= 29-i & y < 30-i ) 
                {
                    cout << "x";
                }                               
                else if ( y >= 34-i & y < 35-i ) 
                {
                    cout << "x";
                }                                       
                else
                {
                    if  ( x >=  5 & x < 10 & y ==  0 )  { cout << "x"; }
                    else if ( x >= 15 & x < 20 & y ==  0 )  { cout << "x"; }
                    else if ( x >=  0 & x <  5 & y == 19 )  { cout << "x"; }
                    else if ( x >= 10 & x < 15 & y == 19 )  { cout << "x"; }                    
                    else                    { cout << " "; }
                }
            }       
        }       
        i ++;
        cout << "\n";   
    }
    
    for ( y = 0; y < 20; y ++ )     
    {
        if ( y >= 5 & y < 10 ) cout << "x";
        else if ( y >= 15 & y < 20 ) cout << "x";
        else cout << " ";
                
    }   
    
    cout << "\n\n THE END!\n\n";    
    system("pause");
    return 0;   
}
Миниатюры
Матрица змейкой  
Yandex
Объявления
10.03.2012, 12:36     Матрица змейкой
Ответ Создать тему
Опции темы

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