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

Найти максимальное количество подряд идущих минимальных элементов из данного набора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дана матрица N на M Записать в другой массив строку http://www.cyberforum.ru/cpp-beginners/thread679714.html
Дана матрица N x M.Записать в другой массив строку, составленную из сумм отрицательных элементов столбцов матрицы. Выполнить без использования процедур и функций.
C++ Вывести все четырехзначные числа в записи которых нет двух одинаковых цифр Вывести все четырехзначные числа в записи которых нет двух одинаковых цифр. Например 1234;1345;1789;6789. Выполнить без функций и продцедур. Мой код не работает( #include "stdafx.h"... http://www.cyberforum.ru/cpp-beginners/thread679708.html
Определить величины всех отрезков, из которых составился путь шмеля C++
6. Пункт А расположен на расстоянии 20 км от пункта Б. Из пункта А со скоростью 2км/час вышел пешеход П1, одновременно с ним на встречу ему из пункта Б вышел пешеход П2 со скоростью 3км/час. Между...
C++ Среди элементов матрицы выше главной диагонали найти произведение чётных элементов
Среди элементов матрицы, которые находятся выше главной диагонали, найти произведение чётных элементов. Как найти элементы, которые находятся выше главной диагонали? for(int i=0;i<n;++i) for(int...
C++ Поиск минимума в массиве http://www.cyberforum.ru/cpp-beginners/thread679650.html
Подскажите,как исправить ошибку? Вот функция main: #include "PUPC.h" #include "Printer.h" #include "Monitor.h" using namespace std; int main() { Printer P1("Sony",2300,"Black & White");
C++ Вычислить сумму Вычислить подробнее

Показать сообщение отдельно
Croessmah
Ушел
Эксперт CЭксперт С++
13554 / 7705 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
25.10.2012, 06:44
Цитата Сообщение от MrGrig Посмотреть сообщение
Если даже последним элементом окажется минимальный и i будет больше размерности массива, цикл while просто закончится и цикл for также прекратит действовать ибо i>N.
Зато при
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstdlib>
using std::cout;
 
int main()
{
    const int N=5;
    int mas[N]={1,2,1,1,1};
    int min=1, n1=0;
    for(int i=0, n=0;i<N;i++){
    if(mas[i]==min){
        while(mas[i++]==min)
            n++;
        if(n>n1){
            n1=n;
            n=0;
        }
        }
    }
    cout<<n1<<"\n";
    system("pause");
    return 0;
}
ответ 2.
Исправился =)))

Добавлено через 14 минут
Цитата Сообщение от MrGrig Посмотреть сообщение
Если даже последним элементом окажется минимальный и i будет больше размерности массива, цикл while просто закончится и цикл for также прекратит действовать ибо i>N.
Если последний элемент минимальный, то при while(mas[i++]==min) будет производиться чтение памяти уже за пределами массива, если там вдруг окажется значение равное минимуму, то и дальше пойдет =)
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru