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

Локальная переменная масив не создаеться в вызваной функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Непонятный код http://www.cyberforum.ru/cpp-beginners/thread780111.html
#define HEX__(n) 0x##n##LU #define B8__(x) ((x&0x0000000FLU)?1:0)\ +((x&0x000000F0LU)?2:0)\ +((x&0x00000F00LU)?4:0)\ +((x&0x0000F000LU)?8:0)\ +((x&0x000F0000LU)?16:0)\ +((x&0x00F00000LU)?32:0)\ +((x&0x0F000000LU)?64:0)\ +((x&0xF0000000LU)?128:0)
C++ Запись трёхмерного массива string в файл Задан массив string M, который в процессе работы будет ежедневно пополнятся новыми словами. Как его записывать в файл, чтобы было удобно читать и редактировать ? Подскажите, пожалуйста, кто знает или имеет какие-то мысли по этому вопросу. http://www.cyberforum.ru/cpp-beginners/thread780090.html
Обработка исключений C++
Есть вопрос по заданию. С клавиатуры вводится номер ошибочной ситуации. В зависимости от того, какой номер введен, сгенерировать целочисельную, действительную или символьную ошибочную ситуацию. Создать обработчики этих ошибочных ситуаций. Создать функцию, которая генерирует целочисельную исключительную ситуацию. Помогите разобраться в задании. Нужно ввести с клавиатуры число или символ, и в...
C++ генерация чисел
Скажите, пожалуйста, как сгенерировать случайным образом отрицательные числа?
C++ Объясните данный алгоритм/функцию http://www.cyberforum.ru/cpp-beginners/thread780075.html
http://rabus.ru/mc/methodOfCoord.html#prim_1 Собственно каким образом это должно происходить? Как вообще и на основании чего это работает? Что там происходит, можете описать мне последовательность что с чем и каким образом?
C++ Массив: найти для каждой строки число элементов, кратных пяти, и наибольший из полученных результатов N(10, 10) Для целочисленной матрицы найти для каждой строки число элементов, кратных пяти, и наибольший из полученных результатов. nij/5*5 = nij подробнее

Показать сообщение отдельно
Qeeet
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 14
06.02.2013, 00:50     Локальная переменная масив не создаеться в вызваной функции
Здравствуйте,
Не укладывется в голове, после завершения рекурсий (т.е.контроль передаеться на if(ii==1){return 0;})
наступает цикл for где уже j=1. В итоге мы имеем измененный массив bool а[]={1,0}.
Если кратко, то следующий код выводит на экран:
a[]= 00
a[]= 10
a[]= 10
a[]= 10
a[]= 11
a[]= 11
0.

Я ожидал такой результат:
a[]= 00
a[]= 10
a[]= 10
a[]= 00
a[]= 01
0.

Подскажите как передать массив в функцию, чтобы он в функции скопировался?
или где я сделал ошибку?

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
#include <iostream>
 
using namespace std;
 
int func(bool a[],int ii,int aj)
{
    int w=0;
    static bool aa=0;
    if(aa){a[aj]=1;}else{aa=1;}
        for(int j=0;j<2;j++)
        { 
            cout<<"a[]= "<<a[0]<<a[1]<<endl;
            if(!a[j])
            {
                if(ii==1){return 0;}
                else{w+=func(a,ii+1,j);}
            }
        }
    return w;
}
 
int func()
{   
    bool a[2];
    for(int i=0;i<2;i++)a[i]=0;
    int ii=0,aj=0;
    return func(a,ii,aj);
}
 
void main()
{
    cout<<func();
    getchar();getchar();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru