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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2017, 21:55   #1
Зураб
 
Регистрация: 23.03.2017
Сообщений: 5
По умолчанию наибольшая последовательность

Дан одномерный массив А длинной N. Найти наименьший элемент в наибольшей по длине последовательности положительных значений массива.

Пример: А{1,2,-3,2,32,3,-3,-6}
Наибольшая последовательность : {2,32,3}
Меньший элемент: {2}
Зураб вне форума Ответить с цитированием
Старый 23.03.2017, 21:57   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Зачем вы выложили сюда текст своей задачи?

Если вы ищете помощь, то покажите свои наработки, конкретные вопросы и т.п.

Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 24.03.2017, 00:59   #3
Зураб
 
Регистрация: 23.03.2017
Сообщений: 5
По умолчанию

Прошу прощения, первый раз вопрос задавал, не знал как корректно оформить.
Вот код программы, не могу понять, почему lmax(максимально длинная последовательность) выдает неверные данные
И min(минимальный элемент в этой последовательности) тоже дает не тот ответ, который должен по идее.
Код:
#include <stdlib.h>
#include <time.h>
#include <locale.h>
#define N 30

int main()
{
    int A[N];
	int l, lmax, i, min;
	srand(time(0));
	setlocale(LC_ALL, "RUS");

    printf("заполняем массив: \n");
    for(i=0;i<N;++i)
        A[i]=rand()%2000-1000;
    for(i=0;i<N;++i)
        printf("%d\n",A[i]);

        l=0;
		lmax=1;
        min=10000;

	for (i=1;i<N;++i)
	{
        if(A[i]>0 && A[i-1]>0){
            l=l+1;
                if(min<A[i])
                    min=A[i];
                }
        else if(l>lmax){
            lmax=l;
            l=0;
            min=10001;
        }
	}
	printf("\nНайдена последовательность: ");
	printf("%d",lmax);
    printf("\nМинимальное значение: ");
	printf("%d",min);
    return 0;
}
Зураб вне форума Ответить с цитированием
Старый 25.03.2017, 00:53   #4
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Протестируй хорошенько:

Код:
#include <stdlib.h>
#include <time.h>
#include <locale.h>
#include <stdio.h> 
#define N 30

int main()
{
	int A[N];
	int l_N, l_N_max, i, min, min_min;
	srand(time(0));
	setlocale(LC_ALL, "RUS");

	printf("заполняем массив: \n");
	for (i = 0; i < N; ++i)
		A[i] = rand() % 2000 - 1000;
	for (i = 0; i < N; ++i)
		printf("%d\n", A[i]);
	
	l_N_max = 0; // кол-во "+" элементов (найбольшее)
	l_N = 0;    // кол-во "+" элементов (в текущей)		
	min = 1001; // мин. в текущей
	min_min = 1001; // самое мин. из всех
	for (i = 0; i < N; ++i)
	{
		if (A[i] > 0)
		{		
			l_N = 1;    // кол-во "+" элементов (в текущей)			
			min = A[i]; // мин. в текущей	
			while (true)
			{
				i++;
				if (i == N || A[i] < 0)
					break;
				l_N++;
				if (min > A[i])
					min = A[i];
			}
		}
		if (l_N_max < l_N) //если нашли ещё большую послед.
		{
			l_N_max = l_N;
			min_min = min;
		}
	}
	printf("\nНайдена последовательность: ");
	printf("%d", l_N_max);
	printf("\nМинимальное значение: ");
	printf("%d", min_min);

	scanf("%d", &i); // чтобы быстро консоль не закрывалась
	return 0;
}
ura_111 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Наибольшая общая подпоследовательность fufayka Помощь студентам 1 18.11.2016 01:16
Наибольшая цифра числа trans967 Помощь студентам 3 11.11.2013 20:12
наибольшая сумма делителей Олег112 Помощь студентам 1 08.11.2012 23:32
C++, Наибольшая из площадей треугольников! STIFLER32 Общие вопросы C/C++ 4 02.02.2011 22:26