Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передача массива в функцию, как? 
V
    Опции темы
TaNK
  Дата 11.12.2006, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Код

//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused

    int seq(int nn); // Прототип

    void main()
     {
       int n;
       cout << "Kol-vo elemento v = ";
       cin >> n;
        int a,i,d,*p;
      y = seq(n);
          //cout << "Uporod. massiv - " << y;
       getch();

     }

    int seq (int nn)
      {
        int a,i,d,p;
        a = 0;
        p = new int *[nn];
       for(i=0; i<nn; i++)
       cin>>p[i];
        for (i=0; i<nn; i++)
         {
           // Тут должна быть сортировка (возрастанию например!!!)
         }
      return p;
      }
//---------------------------------------------------------------------------

например значение в функции seq передается нормально, а как реализовать передачу олностью одномерного массива, который должен быть отсортирован по возрастанию, в main, как осуществить, объясните мне пожайлуста!


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
vinter
Дата 11.12.2006, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Код

int * seq (int *pArray)    
      {    
       //..........
      return pArray;    
      }

альтернатива 
Код

void seq (int &*pArray)    
      {    
       //..........
      }



--------------------
Мой блог
PM MAIL WWW   Вверх
TaNK
Дата 11.12.2006, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Цитата(vinter @ 11.12.2006,  15:30)
Код

int * seq (int *pArray)    
      {    
       //..........
      return pArray;    
      }

альтернатива 
Код

void seq (int &*pArray)    
      {    
       //..........
      }

хорошо, попробую так!


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
TaNK
Дата 11.12.2006, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



все равно не пойму, можно привести маленький примерчик, если не сложно! пожайлуста.


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
vinter
Дата 11.12.2006, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Код

//---------------------------------------------------------------------------    
#include <vcl.h>    
#include <iostream.h>    
#include <conio.h>    
#pragma hdrstop    
//---------------------------------------------------------------------------    
#pragma argsused    
    int seq(int *nn); // Прототип    
    void main()    
     {    
       int n;    
         int a,i,d,*p;    
       cout << "Kol-vo elemento v = ";    
       cin >> n;    
       *p = new int[n];//выделили память под массив
      //здесь вставь заполнение массива
     seq(p);    
         // cout << "Uporod. massiv - " << y;    
       getch();    
     }    
    int  seq (int *nn)    
      {    
        int a,i,d,p;    
        a = 0;    
       for(i=0; i<nn; i++)    
         cin>>p[i];    
        for (i=0; i<nn; i++)    
         {    
           // Тут должна быть сортировка (возрастанию например!!!)    
           //обращаешься как nn[i] или *(nn  + i)
         }    
      return 0;    
      }    
//---------------------------------------------------------------------------



--------------------
Мой блог
PM MAIL WWW   Вверх
GIK
Дата 11.12.2006, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 1
Всего: 14



Цитата(TaNK)

а как реализовать передачу олностью одномерного массива

Зачем передавать весь массив, когда можно передать указатель?
К томуже весь массив и не передать  smile 

Вот код с сортировкой  smile 
Код

//---------------------------------------------------------------------------

#pragma hdrstop
#include <iostream.h>
//---------------------------------------------------------------------------

#pragma argsused

void seq(int *p, int n);

int main(int argc, char* argv[])
{


       int nn[128];
       int n;
       cout << "Kol-vo elemento v = ";
       cin >> n;
       int a,i,d,*p;
       p=nn;

       seq(p, n);
       for(int i=0; i<n; i++){
       cout << p[i] << endl;
       }

       cin >> n;
        return 1;


}

 void seq (int *p, int n)
      {
       for(int i=0; i<n; i++) {
       cin>>p[i]; //Naanu caaeaaai aaiiuie
       } 
       for (int k=(n-1); k!=-1; k--)  { //сортировка по возрастанию
        for (int i=k-1; i!=-1; i--) //Движемся к началу
         {
            if(p[k]<p[i]){
              int ran=p[k];
              p[k]=p[i];
              p[i]=ran;
             }
         }
       }
    }


, 


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
TaNK
Дата 11.12.2006, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Цитата(GIK @ 11.12.2006,  16:49)
Цитата(TaNK)

а как реализовать передачу олностью одномерного массива

Зачем передавать весь массив, когда можно передать указатель?
К томуже весь массив и не передать  smile 

Вот код с сортировкой  smile 
Код

//---------------------------------------------------------------------------

#pragma hdrstop
#include <iostream.h>
//---------------------------------------------------------------------------

#pragma argsused

void seq(int *p, int n);

int main(int argc, char* argv[])
{


       int nn[128];
       int n;
       cout << "Kol-vo elemento v = ";
       cin >> n;
       int a,i,d,*p;
       p=nn;

       seq(p, n);
       for(int i=0; i<n; i++){
       cout << p[i] << endl;
       }

       cin >> n;
        return 1;


}

 void seq (int *p, int n)
      {
       for(int i=0; i<n; i++) {
       cin>>p[i]; //Naanu caaeaaai aaiiuie
       } 
       for (int k=(n-1); k!=-1; k--)  { //сортировка по возрастанию
        for (int i=k-1; i!=-1; i--) //Движемся к началу
         {
            if(p[k]<p[i]){
              int ran=p[k];
              p[k]=p[i];
              p[i]=ran;
             }
         }
       }
    }


,

большое спасибо за помощь, все понял, разобрался, тему закрою!


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.