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

Бесконечный цикл - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Можно ли данный код сделать короче? http://www.cyberforum.ru/cpp-beginners/thread302615.html
#include<iostream> #include<iomanip> int main() { int r,f,a,b,c,d,x,y; cout<<"Vvedite znachenie r:"; cin>>r; cout<<"Vvedite znachenie f:"; cin>>f; cout<<"Vvedite znachenie a:";
C++ Очередь команд Доброго врмени суток. Проблема собственно в следующем: как можно на с++ сделать очередь команд? Т.е. допустим в консоли вводится что-то вроде "8432.28 + 9.7e3" так вот, после прочтения строки было бы неплохо вызвать конструкторы разных классов, записав результат в массиве абстрактного базового класса, а потом вызвать операцию сложения... Я собственно не понимаю какой тап данных будет в... http://www.cyberforum.ru/cpp-beginners/thread302612.html
C++ Функция, возвращающая сумму двух входных параметров (если первый параметр четный) или их разность
разработайте заданную функцию( 1) и продемонстрируйте работу этой функции, сделав в главной программе несколько вызовов функции с разными данными 1.разработайте функцию типа float, что возвращает сумму двух входных параметров, если значения первого параметру парное, иначе возвращает разницу этих параметров.
функция нахождения точки пересечения отрезков (прямых) C++
Не могу понять в чем ошибка (не синтаксическая). Есть функция нахождения точки пересечения отрезков(прямых) //функция находит точку пересечения отрезков(прямых) по векторно-параметрической формуле point myvector::intersect(myvector v2, vect_line type) { point result; float ua, ub; float x1, x2, x3, x4, y1, y2, y3, y4, ch, zn; x1 = get_first_point().getx();
C++ Функция, которая возвращает сумму квадратов параметров http://www.cyberforum.ru/cpp-beginners/thread302595.html
разработайте заданную функцию( 1) с тремя входными параметрами типа float x, a, b, два из которых (a, b) имеют значение по умолчанию, и продемонстрируйте работу этой функции, сделав в главной программе несколько вызовов функции с разными данными 1.разработайте функцию, которая возвращает сумму квадратов параметров программирования.
C++ Функция, которая возвращает среднее арифметическое элементов параметра-массива разработайте заданную функцию( 1) и продемонстрируйте работу этой функции, сделав в главной программе несколько вызовов функции с разными данными. Функция должна выводить на экран адресы элементов масива. 1. разработайте функцию, в которую передается массив типа float, что возвращает среднее арифметическое элементов массива. подробнее

Показать сообщение отдельно
Тома1993
0 / 0 / 0
Регистрация: 17.03.2011
Сообщений: 13
23.05.2011, 12:48     Бесконечный цикл
Задача: Дед Мазай спасает зайцев. На N островках находится некоторое количество зайцев разной массы. Грузоподъемность лодки Мазая ограничена. Мазай совершает челночные поездки от самого дальнего островка к большой суше, делая промежуточные остановки на каждом островке, меняя зайцев – выпуская самых легких и забирая, по возможности, самых упитанных. Вывести обстановку среди зайцев-островитян после очередного объезда.

Зайцы находятся в векторе. Я написала функцию спасения зайцев, но где-то ухожу в бесконечный цикл, т.к. всё время вылетает "Debug assertion failed, vector subscript out of range". Не могу найти(
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
void Boat::take_away_rabbits (Island &is, int maxCapacity)
{
    //Текущая вместимость лодки
    int capacity = 0;
        //Проверяет, помещать ли следующего зайца в лодку
    int checkCapacity = capacity;
    
    //save rabbits 
        //Пока текущая вместимость меньше максимальной вместимости
        while ( capacity <= maxCapacity ) 
        {
            for (int i = 0; i <= (int)((is.Rabbits.size()-1)); i++ )
            {
                         //Прибавляю к вместимости массу следующего зайца
                checkCapacity = capacity + is.Rabbits[i].get_mass();
                         //Проверяю, будет ли эта вместимость <= максимальной
                if (checkCapacity <= maxCapacity )
                {
                                        //Помещаю зайца в лодку
                    boat.push_back(is.Rabbits[i]);
                                        //Удаляю его из вектора зайцев
                    is.Rabbits.erase( is.Rabbits.begin() + i );
                                        //Меняю вместимость
                    capacity += is.Rabbits[i].get_mass();
                                        /*Т.к. происходит удаление, а в цикле есть инкрементация, произвожу декремент i */
                    i--;
                }
            }
        }
    
    /*Сравниваю массу зайцев, оставшихся на острове с массой зайцев в лодке, если она больше, меняю местами зайцев
*/
    for ( int j = 0; j <= (int)((boat.size()-1)); j++ )
        {
            while ( capacity <= maxCapacity )
            {
                for ( int l = 0; l <= (int)((is.Rabbits.size()-1)); l++ )
                {
                    if ( (boat[j].get_mass()) <= (is.Rabbits[l].get_mass()) )
                    {
                        capacity = capacity - boat[j].get_mass();
                        checkCapacity = capacity + is.Rabbits[l].get_mass();
                        if ( checkCapacity <= maxCapacity )
                        {
                            Rabbit a = boat[j];
                            boat[j] = is.Rabbits[l];
                            capacity = capacity + boat[j].get_mass();
                            is.Rabbits[l] = a;
                        }
                        else
                            break;
                    }
                }
            }
        }
    cout << endl;
    cout << "Next island: " << endl;
    cout << "On boat: " << endl;
    cout << endl;
    for ( int z = 0; z <= (int)(boat.size()-1); z++ )
    {
        cout << "Rabbit with mass " << boat[z].get_mass() << " on the boat." << endl;
    }
    cout << endl;
    cout << "On island: " << endl;
    cout << endl;
    for ( int k = 0; k <= (int)(is.Rabbits.size()-1); k++ )
    {
        cout << "Rabbit with mass " << is.Rabbits[k].get_mass() << " on the island" << endl;
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru