Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Массивы, неверный вывод.


Автор: mogtar 8.11.2013, 21:04
Код

int main()
{   int size,ar[]={};
    size=create(ar);
    cout<<"\nРозмiр масиву: ";
    cout<< size;
    cout<<"\nУтворений масив: ";
    for(int i=0;i<size+1;i++)
    {cout << ar[i] <<" ";}

    cout <<"\n\nВиберiть потрiбну дiю. ";
    cout <<"\n1.Рiзниця мiж середнiм арифметичним та геометричним. ";
    cout <<"\n2.Видалення заданого елементу iз масиву.";
    cout <<"\n3.Перетворити цiле число без знаку у пoрядок символiв.";
  cout <<"\n\nВиконати задачу: "; int i;
    cin >> i;
    switch(i){
    case 1:;break;
    case 2:;break;
    case 3:;break;}
  }

Код

int create(int ar[])
{   int m,n,g;
    int 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;}


функция работает правильно, если вывести массив в ней - все верно, но если вызвать функцию то возвращает непонятные значения.
пс: функция преобразовывает число в масив.

Автор: feodorv 8.11.2013, 21:19
А место под массив?
Цитата(mogtar @  8.11.2013,  22:04 Найти цитируемый пост)
int ar[]={}
Это сколько элементов в массиве зарезервировано?


Если заранее число элементов массива не известно и ничем не ограничено, то лучше создавать динамический массив (через new) с уже известным числом элементов и возвращать его из подпрограммы create() совместно с size.


Цитата(mogtar @  8.11.2013,  22:04 Найти цитируемый пост)
    m=g%10;
    g=(g-m)/10;

А просто 
Код
g /= 10;
не пойдёт???

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)