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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vitalka
0 / 0 / 0
Регистрация: 25.03.2010
Сообщений: 22
#1

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

17.09.2010, 09:05. Просмотров 870. Ответов 10
Метки нет (Все метки)

Даны вещественные массивы A[15], B[15]. Для каждого массива определить максимальное количество подряд расположенных положительных элементов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2010, 09:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Для каждого массива определить максимальное количество подряд расположенных положительных элементов (C++):

Для вещественных массивов a и b определить максимальное количество подряд расположенных элементов - C++
Задание: для вещественных массивов a и b определить максимальное количество подряд расположенных элементов. А здесь он считает только при...

Определить максимальное количество подряд идущих положительных элементов массива, не прерываемых ни нулями, ни отрицательными элементами - C++
помогите с этой задачей)) Дан линейный вещественный массив a1,a2,..,an. Определить максимальное количество подряд идущих положительных...

Определить индексы подряд расположенных положительных элементов массива - C++
Вевсти элементи масива а. Определить индексы подряд расположенных положительных элементов массива. (щчень нужно срочно) есть код, но в...

Определить максимальное количество подряд идущих положительных элементов последовательности, не прерываемых ни нулями, ни отрицательными элементами - C++
Дана вещественная таблица а,...,а. Определить максимальное количество подряд идущих положительных элементов последовательности, не...

Записать положительные элементы массива X подряд в массив Y. Определить k – количество положительных элементов. Вычислит сумму элементов массива Y - C++
Записать положительные элементы массива X=(x1,x2,…, xn) подряд в массив Y=(y1,y2,…, yk). Определить k – количество положительных...

Записать положительные элементы массива X подряд в массив Y. Определить k — количество положительных элементов - C++
помогите решить задание на с++ с использованием массива Записать положительные элементы массива X подряд в массив Y. Определить k — ...

10
PointsEqual
ниначмуроФ
836 / 520 / 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 аналогично
1
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
17.09.2010, 10:11 #3
PointsEqual, зачем у вас проверка:
C++
1
A[i] == A[i-1]
Элементы же не обязательно должны быть одинаковые.
0
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
17.09.2010, 10:16 #4
да, точно

тогда поменять условие надо
C++
1
 if ( (A[i] * A[i-1]) > 0 )
0
TheMachinist
243 / 175 / 15
Регистрация: 14.06.2010
Сообщений: 422
17.09.2010, 10:17 #5
Интересно было бы знать как создать массив случайных чисел с плавающей точкой.....
0
dihlofos
Бродяга
303 / 257 / 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, у вас кстати тоже...
2
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 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(), будут разные числа с плав запятой)
0
dihlofos
17.09.2010, 10:28
  #8

Не по теме:

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

0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 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;
}
2
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
17.09.2010, 10:34 #10
Цитата Сообщение от dihlofos Посмотреть сообщение
Проблема только, если все числа положительные

C++
1
2
if ( !cnt ) cnt = new_cnt;
return 0;
1
dihlofos
Бродяга
303 / 257 / 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
не туда вписал?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2010, 10:51
Привет! Вот еще темы с ответами:

Для каждой матрицы определить количество и сумму положительных элементов, расположенных в четных столбцах - C++
Даны вещественные массивы А, D. Для каждого массива определить количество и сумму положительных элементов, расположенных в четных столбцах.

Определить количество положительных элементов каждого столбца двумерного массива, содержащего 5 строк и 5 столбцов - C++
Определить количество положительных элементов каждого столбца двумерного массива, содержащего 5 строк и 5 столбцов. int a2,n2=0,i2,j2; ...

Определить и напечатать количество положительных элементов для каждого столбца матрицы, и найти их сумму - C++
Определить и напечатать количество положительных элементов для каждого столбца матрицы, и найти их сумму

Для каждого массива определить номер столбца с наибольшим количеством положительных элементов. - C++
Использование функций, возвращающих одно значение. Даны целочисленные массивы A, B. Для каждого массива определить номер столбца с...


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

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
17.09.2010, 10:51
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru