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

Как "выдрать" значение переменной из цикла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поменять порядок расположения чисел в последовательности на обратный http://www.cyberforum.ru/cpp-beginners/thread941209.html
Даны целые числа а1,...,an. Поменять порядок расположения чисел в последовательности на обратный.
C++ Новый поток внутри класса Всем привет, решил попытаться оседлать многопоточность. Но увы тут же наткнулся на полное отсутствие информации. Серьёзно, на любом посещённом мною ресурсе описывается либо теоретическая часть (которая мне вроде бы и так понятна), либо сильно замудрённая практическая (которая уже требует каких то минимальных знаний). И ни где толком не объясняется как именно реализовывать многопоточность. В... http://www.cyberforum.ru/cpp-beginners/thread941204.html
Смещение в массиве данных C++
Я просмотрел все примеры в операции с массивами,но такого не нашёл. Мне приходит массив например 1222,и мне надо сделать преобразование, например единицы, из 16 ричной системы в обычную, как отсечь лишнее у массива я знаю, знаю,что так же используется &0x01,а вот как именно?
C++ Объяснить задание
как понять: "The program should be capable of accepting a multi-line input"
C++ С чего начать? http://www.cyberforum.ru/cpp-beginners/thread941179.html
Всем привет! Вводная. Мы тут с товарищем решили замутить небольшой проект на С++. Роли распределили так: он - программист, я - организатор :). Оба в С++ ни в зуб ногой, то есть вообще ноль без палочки, но у товарища, в отличие от меня, хотя бы есть кодерский талант и мозги на правильную волну настроены (вроде бы он кое-что могёт на Паскале). При этом он, как самый настоящий программист,...
C++ структура странная штука вообщем вот, и оно не работает. что не так?) #include <iostream> struct str { int x; int y; str* next; }; подробнее

Показать сообщение отдельно
vladand
0 / 0 / 0
Регистрация: 14.08.2013
Сообщений: 20
21.08.2013, 15:31  [ТС]     Как "выдрать" значение переменной из цикла
Croessmah, мда, я действительно тормоз спасибо за помощь

Добавлено через 33 минуты
в общем программа заработала, но заработала с косяком :\ почему-то если для движения выбрать 5 элементов, стрелочка переместится на 6 элементов(пропуская первый), и если попробовать нарисовать крадрат со стороной 5, то выведется квадрат со стороной 6.
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
int mass[20][20];
int povorot=0;
int Pi=0;
int Pj=0;
 
void PovorotFnc();
void Dvigenie();
 
int main()
{
    int enter;
 
    for (int i=0;i<20;i++)        //присваиваем каждому
        for (int j=0;j<20;j++)    //элементу массива
            mass[i][j]=0;         //значение 0
 
    do
    {
        cout << "Vvedite komandu: ";     //выбираем действие
        cin >> enter;
        
        switch(enter)
        {
            case(1): Dvigenie();
                break;
            case(2): PovorotFnc();
                break;
        }
    }while(enter != 9);
 
for (int i=0;i<20;i++)               // выводим "картинку" массива
        {                            // где вместо элемента "истина"
            for (int j=0;j<20;j++)   // печатаем звездочку 
            {                        // а вместо элемента "ложь" пробел  
                if(mass[i][j]==1)
                    cout << " *";
                else
                    cout << "  ";
            }
        cout << endl;
 
        }
 
    return 0;
}
 
void PovorotFnc()            // функция поворота
{
    povorot++;
    if(povorot==4)
    povorot=0;
}
 
void Dvigenie()               // функция движения  
{
    int i,j,step;
 
    cout << "Vvedite kol-vo step: ";
    cin >> step;
 
    switch(povorot)
    {
        case(0):
            i=Pi;
            j=Pj;
            for(int g=step;g>0;g--)
            {
                mass[i][j]=1;
                j++;
                Pj=j;
            }
        break;
        case(1):
            i=Pi;
            j=Pj;
            for(int g=step;g>0;g--)
            {
                mass[i][j]=1;
                i++;
                Pi=i;
            }
        break;
        case(2):
            i=Pi;
            j=Pj;
            for(int g=step;g>0;g--)
            {
                mass[i][j]=1;
                j--;
                Pj=j;
            }
        break;
        case(3):
            i=Pi;
            j=Pj;
            for(int g=step;g>0;g--)
            {
                mass[i][j]=1;
                i--;
                Pi=i;
            }
        break;
    }
}
думаю проблема в приоритете в этой части кода
C++
1
2
3
4
5
6
for(int g=step;g>0;g--)
            {
                mass[i][j]=1;
                j++;
                Pj=j;
            }
где выполняется сначала инкремент, а затем все остальное

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