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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2012, 19:07   #1
Yakov112
 
Регистрация: 20.09.2012
Сообщений: 8
Лампочка Динамический массив

написал программу по сортировке массива, хотел бы убедиться что все правильно сделал...подскажите, пожалуйста, все ли так?
и еще никак не получается сделать отдельную функцию для ввода n. Может подскажете как ее написать и как вызвать?

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

void inMas1(int &n, int *a)	//ввод массива
{
	cout<<"Введите элементы массива:\n";
	for (int i=0; i < n; ++i)
	{
		cout << "a[" << i << "]=";
		cin >> a[i];
	}
}

void outMas1(int &n,int *a) //вывод введенного массива
{
	cout<<"\nВы ввели массив\n";
	for (int i=0; i<n; i++)
		cout<<a[i]<<"\n";
}

void sort(int &n, int *a)	//сортировка массива
{
	for (int i=n-1; i >= 1; --i)
		for (int j=0; j < i; ++j)
		{
			if(a[j]>a[j+1])
			{
				int f=a[j];
				a[j]=a[j+1];
				a[j+1]=f;
			}
			
		}		
}

void resMas1(int &n,int *a)	//вывод отсортированного массива
{
	cout <<"\nОтсортированный массив:"<<endl;
	for (int i=0; i < n; ++i)
	cout << a[i]<< endl;
}



int main()
{
	setlocale(LC_ALL,"Rus");
	int i, n;
	cout<<"n=";			//ввод количества элементов массива
	cin>>n;
	if (n < 1)
	{
		cout << "\nне правильно задананна размерность массива (n < 1)\n";
		return 0;
	}

	int *a=new int[n];	//выделение памяти
	inMas1(n,a);		//ввод массива
	outMas1(n,a);		//вывод заданного массива
	sort(n,a);			//преобразование массива
	resMas1(n,a);		//вывод преобразованного массива
	delete []a;			//освобождение памяти
	return 0;
}
Yakov112 вне форума Ответить с цитированием
Старый 09.11.2012, 19:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
все ли так?
Похоже на правду.
Цитата:
никак не получается сделать отдельную функцию для ввода n
Код:
int GetN(){printf("Put n: ");int n;scanf("%d",&n);return n;}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2012, 20:51   #3
Murashov
Форумчанин
 
Аватар для Murashov
 
Регистрация: 30.10.2012
Сообщений: 121
По умолчанию

создаёшь динамический массив с помощью malloc, отправляешь его и размер в функцию, а там принимаешь указатель и размер соответственно.
Murashov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический массив, массив указателей alexalisa Паскаль, Turbo Pascal, PascalABC.NET 4 22.04.2011 21:33
Динамический массив - или всё таки не динамический? vedro-compota Общие вопросы C/C++ 30 10.12.2010 23:22
C, динамический массив kira_truelove Помощь студентам 1 24.10.2010 18:44
Динамический массив Ivin Мультимедиа в Delphi 14 27.02.2009 23:22