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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2010, 22:19   #1
ВасяСВВ
Пользователь
 
Регистрация: 18.10.2010
Сообщений: 33
По умолчанию

Переделать задачи с использованием указателей и функций:
Переобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале [a, b], а потом - все остальные.


Мой код:
Код:
#include<iostream.h>

int i,n,e,d;

main1(){

 int* masuv;
 cout<< "Vvedit kilkist elementiv masuva : ";
 cin >>n;
 masuv = new int [n];
 for (i=0;i<n;i++){
  masuv[i]=rand()%20-5;
  cout<<i<<"="<<masuv[i]<<endl;
 }

}


 main2(int* masuv[], const int n) {    //перетворення масива щоб спочатку розміщювалися елементи проміжку, а потім всі інші

 float a,b;
 cout<<"Vvedit promizok [a,b] \n";
 cout<<"a: "; cin>>a;
 cout<<"b: "; cin>>b;

  for(int d=0;d<n;d++){
   if((*masuv[d]>a)&&(*masuv[d]<b))
     cout<<masuv[d]<<endl;
  }

  for(d=0;d<n;d++){
   if(*masuv[d]<a)
    cout<<masuv[d]<<endl;
  }

  for(d=0;d<n;d++){
   if(*masuv[d]>b)
    cout<<masuv[d]<<endl;
  }

}

main() {
  main1();
  main2();

 system("Pause");
}

Но он не работает(((
Почему?? Как передать масив по сылке???

Почему он ругает если написать так????

Код:
 main2(masuv[], n);

Последний раз редактировалось Stilet; 30.11.2010 в 16:42.
ВасяСВВ вне форума Ответить с цитированием
Старый 29.11.2010, 23:15   #2
KemanSR
Форумчанин
 
Регистрация: 03.05.2010
Сообщений: 129
По умолчанию

Вообще-то сразу бросается в глаза название функций "main1" и "main2".
Извините, но это говорит о том что Вы не до конца понимаете что делаете.
KemanSR вне форума Ответить с цитированием
Старый 29.11.2010, 23:17   #3
ВасяСВВ
Пользователь
 
Регистрация: 18.10.2010
Сообщений: 33
По умолчанию

Мне так проще ориентироватся в програме.
Но вообще так можно делать???
ВасяСВВ вне форума Ответить с цитированием
Старый 29.11.2010, 23:36   #4
KemanSR
Форумчанин
 
Регистрация: 03.05.2010
Сообщений: 129
По умолчанию

Код:
#include <iostream>

using namespace std;

int n;

double* create_array()
{
	double* masuv;
	cout << "Vvedit kilkist elementiv masuva : " << endl;
	cin >> n;
	masuv = new double[n];
	for(int i = 0; i < n; i++)
	{
		masuv[i] = (double)(rand() - RAND_MAX / 2) / 1000;
	}
	return masuv;
}

void sort_array(double* parr)
{
	// Здесь сортируем массив. У нас есть ссылка на него и количество элементов 
	// Извините нет времени, но пример вывода напишу
	for(int i = 0; i < n; ++i)
	{
                          cout << i << " = " << parr[i] << endl;
// Или так
//		cout << i << " = " << *(parr + i) << endl;
	}
}


int main()
{
	double* parr = create_array();
	sort_array(parr);
	system("pause");

}

Последний раз редактировалось KemanSR; 30.11.2010 в 00:21.
KemanSR вне форума Ответить с цитированием
Старый 30.11.2010, 00:13   #5
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Массив можно передать в функцию по указателю, например так:
Код:
...
void func(int *arr, int n)
{
    for(int i=0; i < n; ++i)
        arr[i] = i; //Тут возможна любая работа с массивом
}

int main()
{
    int arr[20];
    func(arr, 20);

    return 0;
}
Теперь сами доработайте, что-бы выполнить ваше задание
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 30.11.2010, 09:41   #6
c++ learner
Пользователь
 
Регистрация: 19.12.2008
Сообщений: 38
По умолчанию

KemanSR
Цитата:
Вообще-то сразу бросается в глаза название функций "main1" и "main2".
Извините, но это говорит о том что Вы не до конца понимаете что делаете.
да ну что ты KemanSR)) Это же подход гуру-проггера дву-поточность реализует - мастер! cколько ядер на моем проце столько и майнофф что бы без дела не сидели
"...в самом начале было слово.." т.е. 16-битное битовое поле.
c++ learner вне форума Ответить с цитированием
Старый 30.11.2010, 10:12   #7
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Чем вам имена функций не нравятся? Как их называть личное дело каждого разработчика, лишь бы с синтаксической точки зрения было правильно
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 30.11.2010, 12:33   #8
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

Цитата:
Массив можно передать в функцию по указателю, например так:
да не можно, а нужно, причем это единственный способ передачи массива в функцию в качестве параметра
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 30.11.2010, 14:34   #9
ВасяСВВ
Пользователь
 
Регистрация: 18.10.2010
Сообщений: 33
По умолчанию

Спасибо всем))) До меня дошло как делать))
Что будет если массив передать по значении ?????? Он не будет изменяться???
ВасяСВВ вне форума Ответить с цитированием
Старый 30.11.2010, 14:36   #10
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Сообщение от ВасяСВВ Посмотреть сообщение
Спасибо всем))) До меня дошло как делать))
Что будет если массив передать по значении ?????? Он не будет изменяться???
Запомни массив по значения не когда не передаётся! Ибо имя массива это указатель!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с функциями(передача масива в функцию типа int) sekator Общие вопросы C/C++ 4 27.07.2010 22:13
ДОРОБОТКА МАСИВА Lev.F Помощь студентам 0 31.05.2010 13:09
Помогите з Сортировкой масива в С++ Сергей Человек Помощь студентам 13 06.07.2009 19:58
4 масива Slavik Microsoft Office Excel 2 03.12.2008 21:21
Сортировка масива lhOsvald Общие вопросы C/C++ 21 02.05.2008 00:28