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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2018, 14:32   #1
Alexandr147123
 
Регистрация: 17.04.2018
Сообщений: 7
По умолчанию минимальное значение среди элементов массива

Нужно написать программу, вычисляющее минимальное значение среди элементов массива, начиная с первого и до последнего положительного.

Хотел создать новый динамический массив( *к ), в который бы я загнал номера положительных чисел данного массива, и уже начать поиск минимального значения, начиная с элемента, номер которого совпадает с значением первого элемента моего к массива и заканчивая соответственно тем, что совпадает с последним элементом.

Проблема в том, что я не знаю как это всё дело правильно оформить.
(использование рекурсии обязательно)


Код:
#include<iostream.h>
#include<stdlib.h>
void input(int *,int,int);
void output(int *,int,int);
void kol(int *,int*,int,int,int);
int m=minimal(int *a,int n,int ,0);


int main()
{
	int *a,*k,n,m;
	cout<<"n="<<endl;
	cin>>n;
	a=new int[n];
	k=new int[];
	input(a,n,0);
	output(a,n,0);
    m=minimal(a,n,0,0);
	cout<<"min="<<m<<endl;
	cout<<endl;
	return 0;

}


void input(int a[],int n,int i)
{
	i=0;
	if(i<n)
	{
		a[i]=rand()%10;
		input(a,n,++i);
	}
}


void output(int a[],int n, int i)
{
	i=0;
	if(i<n)
	{
		cout<<a[i]<<' ';
		input(a,n,++i);
	}
} 

void kol(int a[],int k[],int n,int i,int j)
{
	i=0;
	if(i<n)
	{
		if(a[i]>0)                     // Ввожу в новый массив номера положительных элементов
		{
			k[j]=i;
			kol(a,k,n,++i,++j);
		}
	}
}

int minimal(int a[],int k[],int n,int m,int i,int j)
{
	m=a[0];
	i=k[0];
	int g=k[j];
	if (i<g)
	{
		if(a[i]<m)
		{
			m=a[i];
			m=minimal(a,n,m,++i);
		}
	}
	return m;
}

Последний раз редактировалось Аватар; 18.04.2018 в 14:37.
Alexandr147123 вне форума Ответить с цитированием
Старый 18.04.2018, 15:11   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
Сообщение от Alexandr147123 Посмотреть сообщение
Хотел создать новый динамический массив( *к ), в который бы я загнал номера положительных чисел данного массива, и уже начать поиск минимального значения, начиная с элемента, номер которого совпадает с значением первого элемента моего к массива и заканчивая соответственно тем, что совпадает с последним элементом.
Зачем? Почему просто условие положительности не добавить в условие поиска минимума?
p51x вне форума Ответить с цитированием
Старый 18.04.2018, 16:03   #3
Alexandr147123
 
Регистрация: 17.04.2018
Сообщений: 7
По умолчанию

потому что я ищу между первым положительным и последним положительным, между ними то отрицательные могут быть. Например [ -5 5 6 7 -3 6 2 -1 -4 -8] здесь мне нужно искать мин начиная со второго элемента и заканчивая седьмым
Alexandr147123 вне форума Ответить с цитированием
Старый 18.04.2018, 16:04   #4
Alexandr147123
 
Регистрация: 17.04.2018
Сообщений: 7
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Зачем? Почему просто условие положительности не добавить в условие поиска минимума?
потому что я ищу между первым положительным и последним положительным, между ними то отрицательные могут быть. Например [ -5 5 6 7 -3 6 2 -1 -4 -8] здесь мне нужно искать мин начиная со второго элемента и заканчивая седьмым
Alexandr147123 вне форума Ответить с цитированием
Старый 18.04.2018, 16:07   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
Сообщение от Alexandr147123 Посмотреть сообщение
между ними то отрицательные могут быть
Цитата:
Сообщение от p51x Посмотреть сообщение
Почему просто условие положительности не добавить в условие поиска минимума?
Читаем больше одного приложения.
p51x вне форума Ответить с цитированием
Старый 18.04.2018, 16:14   #6
Alexandr147123
 
Регистрация: 17.04.2018
Сообщений: 7
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Читаем больше одного приложения.

не понял что вы имеете в виду
Alexandr147123 вне форума Ответить с цитированием
Старый 18.04.2018, 16:46   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Код:
a[i] > 0
p51x вне форума Ответить с цитированием
Старый 18.04.2018, 16:55   #8
Alexandr147123
 
Регистрация: 17.04.2018
Сообщений: 7
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Код:
a[i] > 0
у меня минимальным может быть и отрицательное.

я вообще не по решению задачи прошу помочь. я прошу глянуть на программу и сказать ошибки, т.к. уверен. что они есть(может скобки где то не надо или же вообще записывается по-другому). Заранее спасибо.
Alexandr147123 вне форума Ответить с цитированием
Старый 18.04.2018, 17:03   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Ок. Вопрос все-равно остается зачем вам массив, если нужны только 2 индекса?
p51x вне форума Ответить с цитированием
Старый 18.04.2018, 17:24   #10
Alexandr147123
 
Регистрация: 17.04.2018
Сообщений: 7
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
зачем вам массив, если нужны только 2 индекса?
Не знаю как по другому вытащить индекс последнего положительного...

Если только так

Код:
while (int i=0; i<n; i++)
{
	if(a[i]>0)
	{
		k=i; // первое положительное
		break;
	}
}


while (int i=0; i<n; i++)
{
	if(a[i]>0)
		j=i;  // второе
}

Последний раз редактировалось Alexandr147123; 18.04.2018 в 17:39.
Alexandr147123 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массиве X(N) найти максимальный элемент среди положительных элементов массива и минимальный среди отрицательных элементов. sorok Общие вопросы C/C++ 2 20.03.2012 12:18
Выбрать минимальное значение среди 5-ти цифр Polotenchik Общие вопросы Delphi 11 16.01.2012 21:48
Вывести на экран минимальное значение среди составных чисел массива. dorofei Помощь студентам 33 24.05.2009 20:42
Три квадратных уравнения. Найти минимальное значение среди действительных корней этих уравнений. Паскаль. GE076 Помощь студентам 2 17.12.2007 20:41