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

игра (с++) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Числовой массив http://www.cyberforum.ru/cpp-beginners/thread201399.html
Задан числовой массив, состоящий из n элементов (n<=100). Определить есть ли среди последних 5 элементов только один четный положительный.
C++ Количество дней от одной даты до другой Здравствуйте. Подскажите пожалуйста как найти количество дней от одной даты до другой? http://www.cyberforum.ru/cpp-beginners/thread201387.html
C++ Учебники С++ для начинающего программиста
Здравствуйте,подскажите где можно скачать Учебники С++ для начинающего программиста,где всё достоверно написано что да как делать?
C++ Шаблоны функции
Помогите решить срочняк:umnik: S=(exp(y)*exp(x))+sqrt(x)
C++ Одномерный массив! http://www.cyberforum.ru/cpp-beginners/thread201319.html
Найти максимальный элемент с реди положительных одномерного масива и минимальный среди отрицательных чисел. к примеру будет: Чисел 10 будет в программе!!!
C++ расчет по двум формулам Программа для расчета по двум формулам. Предварительно подготовить тестовые примеры по второй формуле с помощью калькулятора (результат вычисления по первой формуле должен совпадать со второй) z1=1-1/4 (sin*2)2L+cos2L z2=(cos*2)L+(cos*4)L подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
02.12.2010, 20:57     игра (с++)
asics, можно:
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
32
33
34
35
36
37
38
39
#include <iostream>
using namespace std;
 
int main()
{
        int N, *a, i, j, *b, temp, a_i=0, b_i=0, col=0;
        cin>>N;
        a=new int[N];// этот массив создаем для считывания номеров шариков
        b=new int[N];// этот будет работать как стек
        for(i=0; i<N; i++)// вводим номера шариков в массив a[]
        {
                cout<<"->";
                cin>>a[i];
        }
        for(i=0; i<N; i++)// основной цикл (здесь все вычисления), перебираем все номера шариков, которые находятся в массиве a[]
        {
                b[b_i++]=a[a_i++];// каждый очередной элемент из массива a[] заносим в массив b[]
                temp=0;
                for(j=b_i-1; temp<3 && j>=0; j--)// в этом цикле перебираем в глубь (учитывая глубину) номера шариков в стеке (в массиве b[]), если одинаковых подряд шариков вглубь станет 3, то останавливаем цикл. Так же цикл останавливаем, если 3 одинаковых подряд шарика не оказалось
                {
                        if(b[j]==b[b_i-1])
                                temp++;
                        else break;
                }
                if(temp==3)// если оказалось подряд одинаковых шариков в стеке 3
                {
                        temp=0;
                        while(a[a_i]==b[b_i-1] && b_i<N)// идем дальше по массиву a[] в поисках подряд идущих таких же шариков, увеличивая при этом col на кол-во этих шариков, а также переменную a_i - текущий индекс массива a[].
                        {
                                col++;
                                a_i++;
                        }
                        col+=3;// добавляем 3, -  кол-во этих же шариков в стеке (в массиве b[])
                        b_i-=3;// выкидываем из стека 3 одинаковых шарика
                }
        }
        cout<<"Count delete balls: "<<col<<endl;
    return 0;
}
Добавлено через 29 минут
Кстати никто не заметил, но правильнее будет так:
строку:
for(i=0; i<N; i++)// основной цикл (здесь все вычисления), перебираем все номера шариков, которые находятся в массиве a[]
заменить на:
C++
1
        while(a_i<N)// основной цикл (здесь все вычисления), перебираем все номера шариков, которые находятся в массиве a[]
 
Текущее время: 13:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru