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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mogtar
0 / 0 / 0
Регистрация: 08.11.2013
Сообщений: 51
#1

Не верно возвращает массив - C++

08.11.2013, 22:42. Просмотров 417. Ответов 6
Метки нет (Все метки)

C++ (Qt)
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
int create(int *ar)
{   int m,n,g,size=0;
    cout <<"Введите рядок символов: ";  cin >> n;
    g=n;
 
    while(g>0){
    m=g%10;
    g=(g-m)/10;
    size++;}
 
    g=size;
 
    while(n>0){
    m=n%10;
    n=(n-m)/10;
    ar[g-1]=m;
    g--;}
return size;}
 
int main()
{
    int size,ar[]={};
    size=create(ar);
    cout<<"\nРозмiр масиву: ";
    cout<< size;
 
    cout<<"\nУтворений масив: ";
    for(int i=0;i<size;i++)
    {cout << ar[i] <<" ";}
 
    cin >> size;
}

Если вывести массив в функции то возвращает верный массив, если в main тогда-бред, верно возвращает лишь размер. Не могу понять свою ошибку.
пс: функция преобразовывает число в массив.
0
Миниатюры
Не верно возвращает массив   Не верно возвращает массив  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2013, 22:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не верно возвращает массив (C++):

Создать функцию, в качестве параметра получает массив и количество его элементов, возвращает массив, упорядоченный по возрастанию - C++
помогите решить задачу в с++ создать функцию, в качестве параметра получает массив и количество его элементов, возвращает массив,...

Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. - C++
Пишу в Microsoft Visual Studio -&gt;Win32 Console application -&gt;C++. Условие:Реализовать 3 функции, каждая из которых принимает указатель на...

Функция возвращает массив - C++
Как сделать чтобы функция возвращала массив(не исползуя указатели):(. К присмеру: ... char v; // //заполнение массива // ...

Функция, которая возвращает массив - C++
Как сделать так чтобы функция возвращала указатель на рандомно сгенерированный массив. Входящими данными будет количество строк и столбцов...

Функция, которая возвращает массив - C++
Здравствуйте. Подскажите, пожалуйста, как правильно написать код - есть функция; она должна вернуть массив, который создается в этой же...

Функция возвращает двумерный массив - C++
У кого-то есть пример возврата функцией массива? Я пыталась сделать как с обычной переменной - оно компилируется, но не возфращает...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
08.11.2013, 22:49 #2
C++
1
ar[]={}
Массив из нуля элементов.
Запись в "него" внутри функции create -- запись в не выделенную область памяти.
Так с массивами нельзя работать.
1
mogtar
0 / 0 / 0
Регистрация: 08.11.2013
Сообщений: 51
08.11.2013, 22:52  [ТС] #3
Цитата Сообщение от lemegeton Посмотреть сообщение
C++
1
ar[]={}
Массив из нуля элементов.
Запись в "него" внутри функции create -- запись в не выделенную область памяти.
Так с массивами нельзя работать.
А как тогда верно его обьявить? я кажется не верно понял лекцию, нам вроде сказали если так обьявить то автоматически размер определится.
С меня спасибо.
0
ssXXss
266 / 188 / 10
Регистрация: 15.01.2011
Сообщений: 681
08.11.2013, 22:55 #4
и не удивительно int size,ar[]={};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int create(int *ar)
{
....
  int n = 0;
  cin >> n;
  if(n < 0 || n >100)
    return -1;
  ....
}
 
 
void main()
{
   int size,ar[100] = {0};
   if(!create(ar))
   {
       // error
    return;
   }
 
}
1
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
08.11.2013, 22:56 #5
Безразмерный массив. Размер не указан. Для статических массивов размер должен всегда указываться при объявлении. Пустые скобки [] могут оставаться только если при объявлении массив тут же инициализируется (но опять же! Константным количеством константных значений!)
1
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
08.11.2013, 22:57 #6
Статически -- с положительным целым числом внутри квадратных скобок.

C++
1
int arr[ЧИСЛО];
Динамически -- выделив необходимую память.

C++
1
2
3
int *arr = new int[ЧИСЛО];
...
delete [] arr; // не забыть потом удалить
А при объявлении с инициализацией количество элементов определяется в момент компиляции.
C++
1
2
int arr[] = {1, 2, 3}; // в arr три элемента 0..2 и никогда больше
int barr[] = {}; // в barr ноль элементов и никогда больше
1
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
08.11.2013, 22:59 #7
C++
1
int size, ar[256];
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2013, 22:59
Привет! Вот еще темы с ответами:

Верно ли,что все элементы массива B входят в массив A? - C++
Даны два одномерных массива A(n) и B(m).Верно ли,что все элементы массива B входят в массив A?

Верно ли,что все элементы массива B входят в массив A - C++
Даны два одномерных массива A(n) и B(m).Верно ли,что все элементы массива B входят в массив A?

Функция которая возвращает динамический массив - C++
Здравствуйте! у меня такой глупый вопрос. Я все время путаюсь и никак не могу четко сформулировать на него ответ. Помогите мне раз и...

Функция, что возвращает динамический массив - C++
Функция возвращает динамический массив int *A1 (BYTE val) { int *mass = new int; //инициализация массива return mass; }...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.11.2013, 22:59
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru