Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2014, 18:27   #1
Ravgus
 
Регистрация: 22.03.2014
Сообщений: 7
По умолчанию Передача массива в функции

Нужно изменить программу сортировки так, чтобы массив был локальным и передавался в вызываемые функции.

Вот программа:
Код:
#include<stdio.h>
#include<conio.h>
#define N 100
int a[N];
int tmp, n, i, j;
void vvod_mass()
{
printf("\n Vvedite kol-vo simvolov v masive:");
scanf("%d", &n);
for(i=0;i<n;i++)
{
printf("\n Vvedite simvoly:");
scanf("%d", &a[i]);
}
}
void sort_mass()
{
for(i=0;i<n;i++)
{
for(j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
tmp = a[j];
a[j] = a[j+1];
a[j+1] =tmp;
}
}
printf("\n Otsortirovano");
printf("\n %d", a[i]);
}
}
void main()
{
clrscr();
vvod_mass();
sort_mass();
printf("\n Spasibo za vnimanie!");
getch();
}
Я не совсем понимаю, как здесь можно массив передать в функции. Помогите плс!

Последний раз редактировалось ACE Valery; 25.03.2014 в 18:51.
Ravgus вне форума Ответить с цитированием
Старый 22.03.2014, 18:35   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

В помощь: Передача массивов в функции
Streletz вне форума Ответить с цитированием
Старый 22.03.2014, 21:48   #3
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Минимальный код, который иллюстрирует грамотный способ передачи массивов в функции:

http://rextester.com/MCADJ14921

Код:
#include <iostream>
#include <string>
using namespace std;


template<class T,size_t N> void foo(const T (&array)[N])
{
    for(const T& elem: array)
        cout<<" element = "<< elem << endl;
}

int main()
{
    std::cout << "Hello, world!\n";
    
    const int array[]={1,2,3};
    
    foo(array);
}
Особенность этого способа заключается в том, что количество элементов обычного сишного массива рассчитывается автоматически на этапе компиляции.

Что делает передачу массива таким способом безопасным, по сравнению с сишными способами (см ссылку выше).

Рекомендую.
_Bers вне форума Ответить с цитированием
Старый 24.03.2014, 17:22   #4
Ravgus
 
Регистрация: 22.03.2014
Сообщений: 7
По умолчанию

Спасибо, вообщем у меня вот что вышло, может кому пригодится.

Код:
#include<stdio.h>
#include<conio.h>
#define N 100
int tmp, n, i, j;
void vvod_mass(int a[])
{
printf("\n Vvedite kol-vo simvolov v masive:");
scanf("%d", &n);
for(i=0;i<n;i++)
{
printf("\n Vvedite simvoly:");
scanf("%d", &a[i]);
}
}
void sort_mass(int a[])
{
for(i=0;i<n;i++)
{
for(j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
tmp = a[j];
a[j] = a[j+1];
a[j+1] =tmp;
}
}
printf("\n Otsortirovano");
printf("\n %d", a[i]);
}
}
void main()
{
clrscr();
int a[N];
void vvod_mass(int a[]);
vvod_mass(a);
void sort_mass(int a[]);
sort_mass(a);
printf("\n Spasibo za vnimanie!");
getch();
}

Последний раз редактировалось ACE Valery; 25.03.2014 в 18:51.
Ravgus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передача массива из функции. vazhanio Общие вопросы C/C++ 1 10.12.2013 13:02
Передача массива в функцию и возврат массива из функции Gstar C# (си шарп) 6 14.10.2012 00:38
Произведение элементов массива в функции (передача массива в функцию) (Delphi) Toxa16 Помощь студентам 1 23.04.2011 04:42
С++. передача функции всего массива или сылки Serjuk Помощь студентам 1 01.02.2010 00:24
Функции. Передача массива в качестве параметра функции. Wia Помощь студентам 2 17.03.2009 14:57