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

Мистическая потеря итераций цикла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Синтаксический анализатор http://www.cyberforum.ru/cpp-beginners/thread895011.html
Здравствуйте, подскажите пожалуйста, как в данный анализатор добавить подсчет синуса, косинуса, тангенса, котангенса и логарифма, и сделать так, чтоб при вводе выражения 38*-2 выдавало ошибку, а правильной записью являлось бы 38*(-2)? Заранее спасибо. Код: #include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> #include <math.h>
C++ Подскажите с функцией kbhit() Подскажите как сделать что-бы функция kbhit() реагировала на нажатие определенной клавиши, например клавишу "q". Вот пример код, хочу что бы программа завершалась на клавишу "q". #include<iostream> #include<conio.h> using namespace std; int main() { for(;;) http://www.cyberforum.ru/cpp-beginners/thread894985.html
Модульное тестирование C++
недавно понял, что сложно делать программу без тестирования её модулей. При изменении кода через большое время может вылазить ошибка, и на её устранение тратится много времени. Работаю в с++ builder. Подскажите с чего начать в unit тестировании, каким пользоваться?откуда вообщем отталкиваться?
C++ "Ругается" на оперетор побитового исключения
Мне надо написать функцию которая меняет значение 2-х переменных местами, без использования дополнительной переменной. #include <iostream> using std::cout; using std::cin; template<typename T> void swap(T &a, T &b) { &a ^= &b ^= &a ^= &b;
C++ Найти наиболее и наименее удаленные точки в массиве http://www.cyberforum.ru/cpp-beginners/thread894943.html
как найти наиболее и наименее удаленные точки в массиве
C++ Расшифровать (*sk()[4] Расшифровать (*sk()) Кто может подсказать?) подробнее

Показать сообщение отдельно
Дмитрий3241
638 / 509 / 52
Регистрация: 07.07.2011
Сообщений: 1,227

Мистическая потеря итераций цикла - C++

08.06.2013, 00:11. Просмотров 521. Ответов 10
Метки (Все метки)

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;
 
void shift( int * array, int direct, int n );
void print( int * array, int n );
 
int main()
{
        int a[] = { 1, 2, 3 };
 
        for ( int i = 0; i < 3; i++ )
        {
                print( a, 3 );
                shift( a, 1, 3 );
        }
 
        return 0;
}
 
void print( int * array, int n )
{
        for ( int i = 0; i < n; i++ )
                cout << array[i] << " ";
        cout << endl;
}
 
void shift( int * array, int direct, int n )
{
        if ( direct == 0 )
        {
                int tmp = array[0];
                for ( int i = 0; i < n; i++ )
                        array[i] = array[i+1];
                array[n-1] = tmp;
        }
        else
        {
                int tmp = array[n-1];
                for ( int i = n; i > 0; i-- )
                        array[i] = array[i-1];
                array[0] = tmp;
        }
}
А вот вывод данной программы:
1 2 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
#include <iostream>
 
using namespace std;
 
void shift( int * array, int direct, int n );
void print( int * array, int n );
 
int main()
{
        int a[] = { 1, 2, 3 };
 
        int b = 0;
        for ( int i = 0; i < 3; i++ )
        {
                print( a, 3 );
                shift( a, 1, 3 );
                b++;
        }
 
        return 0;
}
 
void print( int * array, int n )
{
        for ( int i = 0; i < n; i++ )
                cout << array[i] << " ";
        cout << endl;
}
 
void shift( int * array, int direct, int n )
{
        if ( direct == 0 )
        {
                int tmp = array[0];
                for ( int i = 0; i < n; i++ )
                        array[i] = array[i+1];
                array[n-1] = tmp;
        }
        else
        {
                int tmp = array[n-1];
                for ( int i = n; i > 0; i-- )
                        array[i] = array[i-1];
                array[0] = tmp;
        }
}

То вывод нормальный, мб тут память заменяется где-нибудь, я просто всегда писал на c# и там таких чудо-штук не происходило.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru