Нужно подсчитать максимальное количество отрицательных элементов идущих подряд. Что-то не могу понять как сделать правильно. На данный момент считает просто все отрицательные элементы.
#include
void main()
{
setlocale(LC_ALL, "ukr");
srand(time(NULL));
const int n = 15;
bool change = true;
int arr[n], m = 0;
for (int i = 0; i < n; i++)
{
arr[i] = rand() % 10 - 5;
cout << arr[i] << " ";
}
cout << endl;
int maxcount = 0;
for (int i = 0; i < n; i++)
{
int count = 0;
if (arr[i] < 0) {
for (int j = i; j < n; j++)
{
if (arr[j] < 0) {
count++;
if (count > maxcount) { maxcount = count; }
cout << count << " ";
}
}
}
}
cout << endl << maxcount << endl;
}
Ответ
for (int j = i; j < n; j++)
{
if (arr[j] < 0) {
count++;
if (count > maxcount) { maxcount = count; }
}else{
count = 0; //cбрасывать значение count кто будет?
}
}
пробный запуск:
-3 -5 -4 3 4 -5 1 0 -3 -1 -1 -2 -5 -5 0
6
Комментариев нет:
Отправить комментарий