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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2009, 20:45   #1
retpecub
 
Аватар для retpecub
 
Регистрация: 13.06.2009
Сообщений: 9
Вопрос Помогите с Массивами! Плиз:)

Проблемка такова:
Есть массив1 из n целых чисел и нужно создать новый массив2 и внести в него числа расположенные между min и max элементами в массиве1.
Как это сделать, помогите плиз чем сможете.
Заранее спасибо...
retpecub вне форума Ответить с цитированием
Старый 25.06.2009, 20:48   #2
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Показуй свой код, а потом будем помогать.
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 25.06.2009, 21:22   #3
assasin
Форумчанин
 
Регистрация: 27.04.2009
Сообщений: 123
По умолчанию

Найди мин и макс, потом создай новый массив исходя из разницы между индексами этих элементов, а потом через цикл, зная индексы просто перекопируй нужные элементы...
<= P.S. если я тебе помог нажми весы слева <=
assasin вне форума Ответить с цитированием
Старый 25.06.2009, 21:24   #4
reset
Пользователь
 
Регистрация: 21.09.2008
Сообщений: 14
По умолчанию

Цитата:
Сообщение от retpecub Посмотреть сообщение
массив1 из n целых чисел и нужно создать новый массив2 и внести в него числа расположенные между min и max
массив1 отсортирован по возрастанию, по умолчанию или как ???
reset вне форума Ответить с цитированием
Старый 25.06.2009, 21:27   #5
assasin
Форумчанин
 
Регистрация: 27.04.2009
Сообщений: 123
По умолчанию

да я ж выше описал, надо просто индексы этих элементов знать и все))))
<= P.S. если я тебе помог нажми весы слева <=
assasin вне форума Ответить с цитированием
Старый 25.06.2009, 21:33   #6
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

assasin, возможно reset имел в виду такой случай когда min после max
Код:
int main()
{
	int arr[] = {6,7,8,9,2,6,1,4};
	int new_arr[...];

	for(int i = min_index(arr,..), j = 0; i < max_index(arr,..); ++i)
		new_arr[j++] = arr[i];
	return 0;
}
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 25.06.2009, 21:44   #7
retpecub
 
Аватар для retpecub
 
Регистрация: 13.06.2009
Сообщений: 9
По умолчанию

Спасибо вам! Вы мне помогли. Особое спасибо assasin
retpecub вне форума Ответить с цитированием
Старый 25.06.2009, 21:46   #8
evgenrpo
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 71
По умолчанию

Код:
#include <iostream>
using namespace std;
void main()
{
	int array1[10]={2,5,4,6,1,7,9,8,10,3};
	int min = 0;
	int max = 0;
	int array2[10];
	//ищим max
	for(int i=0;i<10;i++)
	{
		if(array1[i] > max )
		{
		max = array1[i];
		}
	}
	//Максимальное число
	cout<<"max = "<<max<<endl;
	min = max;
	//Ищим min
	for(int i = 0; i < 10; i++)
	{
		if(array1[i] < min)
		{
		min = array1[i];
		}
	}
	//Минимальное число
	int coun=0;
	cout<<"min = "<<min<<endl;
	//Переписеваем масив с исключениями min , max
	for(int i = 0 ; i < 10 ; i++)
	{
		if((array1[i] == max)||(array1[i]==min))
		{}
		else
		{
			array2[coun]=array1[i];
			coun++;
		}
	}
//Выводим
	for(int i =0 ; i< coun; i++)
	{
	cout<<array2[i]<<endl;
	}
}
evgenrpo вне форума Ответить с цитированием
Старый 25.06.2009, 22:07   #9
assasin
Форумчанин
 
Регистрация: 27.04.2009
Сообщений: 123
По умолчанию

у evgenrpo немного неточно... а когда мин идет после макса, то надо просто взять разницу по модулю fabs() для double или abs() для int
<= P.S. если я тебе помог нажми весы слева <=

Последний раз редактировалось assasin; 25.06.2009 в 22:27.
assasin вне форума Ответить с цитированием
Старый 25.06.2009, 22:41   #10
evgenrpo
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 71
По умолчанию

извените не так прочитал (числа расположенные между min и max элементами в массиве1)
тогда вот
Код:
int coun=0;
	cout<<"min = "<<min<<endl;
	
	int index1=0,index2=0;
	for(int i = 0 ; i < 10 ; i++)
	{
		if(array1[i] == max)
		{
		index1=i;
		}
		if(array1[i]==min)
		{
		index2=i;
		}
		
	}
	
	if(index1>index2)
	{
	int f = index1;
	index1 = index2;
	index2 = f;
	}
	for(int i=0;i<10;i++)
	{
	   if((i>index1)&&(i<index2))
	   {
	   array2[coun] = array1[i];
	   coun++;
	   }
	}
переписевает только между min i max также max i min
evgenrpo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с массивами!!! VILLIREX Помощь студентам 10 24.06.2009 17:54
Помогите, плиз, с массивами?! Маськ@ Помощь студентам 1 17.02.2009 18:58
помогите с массивами Ibmsystem Помощь студентам 1 21.04.2008 08:10
Помогите с массивами Юль_кА Паскаль, Turbo Pascal, PascalABC.NET 2 10.04.2008 08:39