Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Почему с помощью std::cin не получается считать с клавиатуры массив пользовательского типа? Доброго времени суток! Нашёл приме объвления класса комп. чисел и выполнения основных операций. Я пытал преобразовать коод таким образом, чтобы из текстового файла считывались данные в формате (1,2) что означает 1+2i, но почему то вообще даже не получается считать из файла хоть как-то. Привожу пример программы не изменённой: class Complex { private: float realPart, imaginaryPart; //... https://www.cyberforum.ru/ cpp-beginners/ thread1813002.html C++ Найти наибольший общий делитель чисел M и N, используя метод Эйлера (исправить ошибки)
Добрый вечер всем. Помогите пожалуйста с решением данной задачи в с++ 6.0 (знаю что это древняя версия но с нас требуют выполнения в ней(() Задание "Найти наибольший общий делитель чисел M и N используя метод Эйлера: если M делится на N, то НОД (N, M) = N, иначе НОД (N, M) = НОД (M % N, N)." я пытался сам написать, но по незнанию не получается сделать все правильно. выдает ошибки: error...
C++ Записать тригонометрическое выражение по заданной формуле https://www.cyberforum.ru/ cpp-beginners/ thread1812991.html
Кто может помочь написать это на С++?
C++ Записать тригонометрическое выражение по заданной формуле https://www.cyberforum.ru/ cpp-beginners/ thread1812989.html
Попалась такая формула. Не знаю в каком порядке писать на языке С++.
C++ Как сделать перестановку в строке
Всем привет. Нужна помощь по следующему вопросу. Входные данные: вводим строку без пробелов и ключ (последовательность чисел). Далее разбиваем строку на части равные количеству этих чисел. Далее заменяем. (Например строка: padshsw ключ: 312 после замены каждого блока: ahdspsw. Не могу придумать как разбитому тексту на блоки сопоставить эти значения. Знаю что ключ надо делать не с помощью string,...
C++ Нюансы работы с оператором ветвления if else: почему программа ведёт себя не так, как ожидается? https://www.cyberforum.ru/ cpp-beginners/ thread1812979.html
Имеется код: int a; char q; for (;;) { cout << "Введите число: "; cin >> a;
C++ Перевод кода с C# на С++ https://www.cyberforum.ru/ cpp-beginners/ thread1812973.html
Есть код на C# нужно перевести на С++, помогите пожалуйста так как еще не свободно владею языками программирования. Буду очень благодарен. using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; using System.IO; namespace MyNamespac {
Как найти k-ый элемент в двусвязном списке? C++
Задание состоит в том, чтобы найти m-ый элемент в двусвязном списке и вывести его на экран.вот моя попытка void Spisok:: find() { int m; cout<<"wwedite m: "; cin>>m; Element*ptr=pStart; while(ptr){ int i=0;
C++ Для заданной квадратной матрицы найти такое k, что k-я строчка матрицы совпадает с k-м столбцом Для заданной матрицы размера N na N найти такое k, что k-ю строчку матрицы совпадает с k-м столбцом. Найти сумму элементов в тех строках, содержащих хотя бы один отрицательный элемент. https://www.cyberforum.ru/ cpp-beginners/ thread1812942.html C++ Элементы массива, стоящие на нечётных позициях, переставить в начало массива, а на чётных - в конец https://www.cyberforum.ru/ cpp-beginners/ thread1812941.html
Превратить массив таким образом, чтобы в его первой половине располагались элементы, стоящие в нечетных позициях, а во второй половине - элементы, стоящие в четных позициях.
Перемножить элементы массива, расположенные между первым и вторым нулевыми элементами; найти максимальный C++
В одномерном массиве, состоящем из N целых элементов, вычислить: - номер максимального элемента массива; - Умножение элементов массива, расположенных между первым и вторым нулевыми элементами.
C++ Вычислить сумму произведения Нужно написать программу вычисления формулы \sum_{i = 0}^{2}\prod_{j = 0}^{2}(2 + i + j) , проблема заключается в том, что не знаю как продолжить увеличивать i при этом j оставалась прежней. #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv) { setlocale(LC_ALL,"RUS"); int x = 2; https://www.cyberforum.ru/ cpp-beginners/ thread1812922.html
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
24.09.2016, 23:37 0

Неожиданное поведение программы: почему не работает цикл do while? - C++ - Ответ 9574439

24.09.2016, 23:37. Показов 4951. Ответов 23
Метки (Все метки)

Ответ

Sh_a_man, ValeryS, написал вот такого монстрика:

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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#include <iostream>
#include <vector>
#include <algorithm>
 
typedef unsigned int uint;
 
class Purse
{
    uint rubles_;
    uint kopeks_;
    uint total_;
 
public:
    Purse( uint r = 0, uint k = 0) : rubles_(r), kopeks_(k)
    {
        total_ = rubles_ * 100 + kopeks_;
    }
 
    void set_rubles( const uint r )
    {
        rubles_ = r;
        total_ += rubles_ * 100;
    }
 
    void set_kopeks( const uint k )
    {
        kopeks_ = k;
        total_ += kopeks_;
    }
 
    void set_total( const uint t )
    {
        total_ = t;
        rubles_ = total_ / 100;
        kopeks_ = total_ % 100;
    }
 
    uint rubles() const // getter
    {
        return rubles_;
    }
 
    uint kopeks() const // getter
    {
        return kopeks_;
    }
 
    uint total() const // getter
    {
        return total_;
    }
 
    void throw_money_into_the_river( const uint magic_amount )
    {
        set_total( total_ - magic_amount );
        std::swap(rubles_, kopeks_);
        total_ = rubles_ * 100 + kopeks_;
    }
};
 
int main()
{
    const uint magic_amount = 29; // amount of money that have to be thrown into the river
 
    Purse p(46, 47);
    std::vector<uint> current_amount;
 
    uint debug_num_of_step = 0; //DEBUG VARIABLE
    do
    {
        //DEBUG INFO BEGIN
        ++debug_num_of_step;
        std::cout
            << "\ndebug_num_of_step: "
            << debug_num_of_step
            << "\ncurrent_rubles is: "
            << p.rubles()
            << "\ncurrent_kopeks is: "
            << p.kopeks()
            << "\ncurrent_total_amount is: "
            << p.total()
            << "\n\n";
        //DEBUG INFO END
 
        p.throw_money_into_the_river( magic_amount );
        current_amount.push_back( p.total() );
    }
    while ( p.total() > magic_amount );
 
    Purse best_balance;
 
    best_balance.set_total
        (
            *std::max_element
                (
                    current_amount.begin(),
                    current_amount.end()
                )
        );
 
    std::cout
        << "The best balance is: "
        << best_balance.rubles()
        << " rubles and "
        << best_balance.kopeks()
        << " kopeks.\n\n";
 
    uint optimal_number_of_passes = 0;
    size_t current_amount_size = current_amount.size();
 
    for ( size_t i = 0; i < current_amount_size; ++i)
    {
        if ( best_balance.total() == current_amount[i] )
            optimal_number_of_passes = i;
    }
 
    std::cout
        << "Optimal number of passes is: "
        << optimal_number_of_passes + 1
        << "\n\n";
 
    return 0;
}


Вернуться к обсуждению:
Неожиданное поведение программы: почему не работает цикл do while? C++
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2016, 23:37
Готовые ответы и решения:

Неожиданное поведение программы: почему не работает цикл while?
Проблема: Цикл While при != является бесконечным ,а при == не выполняется ни разу Ожидаемое...

Неожиданное поведение программы: почему программа внезапно завершает работу?
Писал в codeblocks с компилятором gnu gcc. После запуска и ввода данных завершается работа...

Неожиданное поведение программы: почему на консоль не выводятся крайние значения заданного диапазона?
Помогите, пожалуйста, наити ошибку!? Не выводится крайнее значение, то есть если брать от -2 до 3х,...

Неожиданное поведение программы: почему при делени с остатком, в условии if получается true?
Ребят не могу понять #define N 64 int length=12; if ((N - 1) % matrix != 0) В переменной...

23
24.09.2016, 23:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.09.2016, 23:37
Помогаю со студенческими работами здесь

Неожиданное поведение программы: вместо вывода суммы чисел, на консоль всё время выводится ноль (цикл while)
Программа запрашивает ввод числа. После каждого введенного значения программа должна выдавать...

Неожиданное поведение программы: почему после каждой выведенной фразы в консоли появляются цифры?
почему после каждой выведенной фразы в консоли появляются цифры? например, Введите значение...

Неожиданное поведение программы: найти ошибку в коде
Программа запрашивает у пользователя «Сколько Вам лет?» . Вы вводите положительное число до 100....

Неожиданное поведение программы: исправить ошибку в коде
извиняюсь за возможно глупый вопрос, но почему программа говорит,что в выделенной строке ошибка?...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru