Форум программистов, компьютерный форум CyberForum.ru

Для каждого массива определить максимальное количество подряд расположенных положительных элементов - C++

Восстановить пароль Регистрация
 
vitalka
0 / 0 / 0
Регистрация: 25.03.2010
Сообщений: 22
17.09.2010, 09:05     Для каждого массива определить максимальное количество подряд расположенных положительных элементов #1
Даны вещественные массивы A[15], B[15]. Для каждого массива определить максимальное количество подряд расположенных положительных элементов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2010, 09:05     Для каждого массива определить максимальное количество подряд расположенных положительных элементов
Посмотрите здесь:

C++ Для вещественных массивов a и b определить максимальное количество подряд расположенных элементов
C++ Определить максимальное количество подряд идущих положительных элементов последовательности, не прерываемых ни нулями, ни отрицательными элементами
Для каждого массива определить номер столбца с наибольшим количеством положительных элементов. C++
C++ Определить максимальное количество подряд идущих положительных элементов массива, не прерываемых ни нулями, ни отрицательными элементами
C++ Определить индексы подряд расположенных положительных элементов массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
17.09.2010, 09:57     Для каждого массива определить максимальное количество подряд расположенных положительных элементов #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
 
using namespace std;
 
 
int main()
{
    int cnt = 0;
    int new_cnt = 1;
    int index_long_element = 0;
 
    float A[20] = {1,1,5,5,5,5,5,5,5,5,-7,-7,-7,-7,8,8,-3,-3,2,2};
 
    for (int i = 1; i < 20; ++i){
        if (A[i] == A[i-1] && A[i] > 0)
            ++new_cnt;
        else {
            if (new_cnt > cnt)
                cnt = new_cnt;
            new_cnt = 1;
        }
    }
 
   cout<<cnt;
 
    return 0;
}
для маассива B аналогично
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
17.09.2010, 10:11     Для каждого массива определить максимальное количество подряд расположенных положительных элементов #3
PointsEqual, зачем у вас проверка:
C++
1
A[i] == A[i-1]
Элементы же не обязательно должны быть одинаковые.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
17.09.2010, 10:16     Для каждого массива определить максимальное количество подряд расположенных положительных элементов #4
да, точно

тогда поменять условие надо
C++
1
 if ( (A[i] * A[i-1]) > 0 )
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
17.09.2010, 10:17     Для каждого массива определить максимальное количество подряд расположенных положительных элементов #5
Интересно было бы знать как создать массив случайных чисел с плавающей точкой.....
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
17.09.2010, 10:21     Для каждого массива определить максимальное количество подряд расположенных положительных элементов #6
Тоже попробовал чего-то нацарапать:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream.h>
 
int main()
{
    float a[15];
    int i, kolvo=0, max=0;
 
    srand(time(NULL));
 
    for(i=0; i<15; i++)
    {
        cout<<(a[i]=(-100+rand()%200)/1.1)<<endl;
    }
    for(i=0; i<15; i++)
    {
        if (a[i]>=0)
            kolvo++;
        else
        {
            if(kolvo>max)
                max=kolvo;
            kolvo=0;
        }
    }
 
    cout<<"Max kol-vo = "<<max;
 
    cout<<endl<<endl;
    system("pause");
    return 0;
}
Проблема только, если все числа положительные. PointsEqual, у вас кстати тоже...
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.09.2010, 10:25     Для каждого массива определить максимальное количество подряд расположенных положительных элементов #7
NikolaWhite,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <ctime>
 
int main()
{
    srand(static_cast<unsigned>(time(NULL)));
    double Arr[10];
    for(int i=0; i<10; ++i)
    {
         Arr[i]=static_cast<double>(rand())/rand();
    }
    for(int i=0; i<10; ++i)
       std::cout<<Arr[i]<<' ';
    return 0;
}
Собственно можно любое число вместо второго rand(), будут разные числа с плав запятой)
dihlofos
17.09.2010, 10:28
  #8

Не по теме:

Lavroff, а ели rand() нолик вернёт?

ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.09.2010, 10:29     Для каждого массива определить максимальное количество подряд расположенных положительных элементов #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
dihlofos, А это уже от удачливости зависит)
Вот так не вернет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <ctime>
 
int main()
{
    srand(static_cast<unsigned>(time(NULL)));
    double Arr[10];
    for(int i=0; i<10; ++i)
    {
         Arr[i]=static_cast<double>(1+rand())/(1+rand());
    }
    for(int i=0; i<10; ++i)
       std::cout<<Arr[i]<<' ';
    return 0;
}
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
17.09.2010, 10:34     Для каждого массива определить максимальное количество подряд расположенных положительных элементов #10
Цитата Сообщение от dihlofos Посмотреть сообщение
Проблема только, если все числа положительные

C++
1
2
if ( !cnt ) cnt = new_cnt;
return 0;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2010, 10:51     Для каждого массива определить максимальное количество подряд расположенных положительных элементов
Еще ссылки по теме:

Для каждой матрицы определить количество и сумму положительных элементов, расположенных в четных столбцах C++
Записать положительные элементы массива X подряд в массив Y. Определить k — количество положительных элементов C++
Определить количество положительных элементов каждого столбца двумерного массива, содержащего 5 строк и 5 столбцов C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
17.09.2010, 10:51     Для каждого массива определить максимальное количество подряд расположенных положительных элементов #11
Не знаю, наверное изврат - в свою прогу перед выводом добавил:
C++
1
if (kolvo>max) max=kolvo;
Вроде работает для всех ситуаций.

PointsEqual, у вас косяки, например, при таких раскладах:

C++
1
2
3
float A[20] = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
float A[20] = {-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
float A[20] = {1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
Или я
C++
1
if ( !cnt ) cnt = new_cnt
не туда вписал?
Yandex
Объявления
17.09.2010, 10:51     Для каждого массива определить максимальное количество подряд расположенных положительных элементов
Ответ Создать тему
Опции темы

Текущее время: 09:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru