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

Робот К-79 - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ выдает ошибки,какие не могу понять http://www.cyberforum.ru/cpp-beginners/thread1050289.html
/*В целочисленном массиве найти количество четных чисел, рас-положенных между первым и последним нулевыми числами этого мас-сива. Предусмотреть случаи, когда нет нулей, нуль единственный, нет четных чисел между первым и последним нулевыми числами, и вывести соответствующий текст. */ #include "stdafx.h" #include <iostream> using namespace std; void main() { setlocale(0,"");...
C++ двухмерный массив(можно с использованием функцией) В матрице найти количество строк, у которых есть хотя бы один нуль и номер первой такой строки. http://www.cyberforum.ru/cpp-beginners/thread1050277.html
В матрице найти количество строк, у которых все нули C++
В матрице найти количество строк, у которых все нули (с комментариями если можно)
C++ Сортировка методом Шелла
Не могу разобраться с сортировкой методом Шелла именно в двумерном массиве. Если, например, нам дан двумерный массив 10 на 10, а элементы нужно расположить в порядке убывания. Как реализовать эту задачу в коде? Заранее спасибо! Добавлено через 14 минут сортировать нужно столбцы матрицы
C++ явная специализация http://www.cyberforum.ru/cpp-beginners/thread1050269.html
Всем добра, может кто объяснить для чего нужна явная специализация, если можно сделать перегрузку.
C++ Дать описание кода, который определяет сколько нулей лежит вне минимального и максимального значений массива Объясните, что означает каждая строка кода. Заранее спасибо:) Определить, сколько нулей лежит вне минимального и максимального значений массива I. #include <iostream> #include <cstdlib> using namespace std; #define n 20 int main(){ int mas; подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
21.12.2013, 00:25     Робот К-79
см комментарии:
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
#include <iostream>
#include <vector>
 
 
using namespace std;
 
int main(int argc, char* argv[])
{
    char program[200]="";// размер массива делайте 201 или более
    cin>>program;
    char direction='a';
    vector<int> Y;
    vector<int> X;
    X.push_back(0); Y.push_back(0);
    unsigned long int x, y;// этим двум переменным присвойте значения 0
    unsigned long int counter=0;
    const unsigned long int num=sizeof(program)/(sizeof(program[0]));
    int q=0;
 
    for (unsigned long int i=0; i<num; i++)
    {
        switch (program[i])
        {
        case 'R':
            {
                switch (direction)
                {
                case 'a':
                    {
                        direction='b';
                        break;
                    }
                case 'b':
                    {
                        direction='c';
                        break;
                    }
                case 'c':
                    {
                        direction='d';
                        break;
                    }
                case 'd':
                    {
                        direction='a';
                        break;
                    }
                }
                break;
            }
        case 'L':
            {
                switch (direction)
                {
                case 'a':
                    {
                        direction='d';
                        break;
                    }
                case 'b':
                    {
                        direction='a';
                        break;
                    }
                case 'c':
                    {
                        direction='b';
                        break;
                    }
                case 'd':
                    {
                        direction='c';
                        break;
                    }
                }
                break;
            }
        case 'S':
            {
                 switch (direction)
                 {
                 case 'a':
                     {
                         x++;
                         break;
                     }
                 case 'b':
                     {
                         y++;
                         break;
                     }
                 case 'c':
                     {
                         x--;
                         break;
                     }
                 case 'd':
                     {
                         y--;
                         break;
                     }
                 }
                 /* ... */
                 counter++;
                 for (unsigned long int i=0; i<X.size(); i++)
                 {
                     if ((X[i]==x)&&(Y[i]==y))
                     {
                         q=1;
                         goto exit;
                     }
                 }
 
                 /* ... */
                 Y.push_back(y); X.push_back(x);
                 break;
            }
 
 
        }
    }
    exit:
        switch (q)
        {
        case 1:
            {
                cout<<counter;
                break;
            }
        case 0:
            {
                cout<<0;// по условию нужно выводить не 0 и значение counter а "-1"
                cout<<counter;
                break;
            }
        }
    return 0;
}
Добавлено через 4 минуты
и на будущее один способ. вместо вот этого:
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
        switch (program[i])
        {
        case 'R':
            {
                switch (direction)
                {
                case 'a':
                    {
                        direction='b';
                        break;
                    }
                case 'b':
                    {
                        direction='c';
                        break;
                    }
                case 'c':
                    {
                        direction='d';
                        break;
                    }
                case 'd':
                    {
                        direction='a';
                        break;
                    }
                }
                break;
            }
        case 'L':
            {
                switch (direction)
                {
                case 'a':
                    {
                        direction='d';
                        break;
                    }
                case 'b':
                    {
                        direction='a';
                        break;
                    }
                case 'c':
                    {
                        direction='b';
                        break;
                    }
                case 'd':
                    {
                        direction='c';
                        break;
                    }
                }
                break;
            }
можно завести переменную например int direction=0. (принимать она будет всего 4 значения: 0,1,2,3)
Поворачиваете вправо:
direction=(direction+1)%4;
поворачиваете влево:
direction=(direction+3)%4;
 
Текущее время: 03:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru