Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Andrewer
17 / 17 / 1
Регистрация: 03.12.2015
Сообщений: 97
Завершенные тесты: 1
1

Заменить оператор goto на цикл, если это возможно

21.01.2016, 08:04. Просмотров 242. Ответов 3
Метки нет (Все метки)

Есть простой таймер
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
#include <cstdlib>
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main(){
    setlocale(0, "");
    
    
    int hour_start, minyte_start, a, r;
    
    
    
    I:cout << "Õîòèòå èñïîëüçîâГ*ГІГј Г·Г*Г±Г» (åñëè Г*ГҐГІ Г*Г*æìèòå 0 ГЁГ*Г*Г·ГҐ ââåäèòå êîëè÷åñòâî Г·Г*ñîâ)  ";
    cin >> hour_start;
    cout << "Õîòèòå èñïîëüçîâГ*ГІГј ìèГ*ГіГІГ» (åñëè Г*ГҐГІ Г*Г*æìèòå 0 ГЁГ*Г*Г·ГҐ ââåäèòå êîëè÷åñòâî ìèГ*ГіГІ)  ";
    cin >> minyte_start;
    cout << "Õîòèòå èñïîëüçîâГ*ГІГј Г±ГҐГЄГіГ*äû (åñëè Г*ГҐГІ Г*Г*æìèòå 0 ГЁГ*Г*Г·ГҐ ââåäèòå êîë-ГўГ® Г±ГҐГЄГіГ*Г¤)  ";
    cin >> a;
    
    int b = a + (hour_start * 3600) + (minyte_start * 60);
    
    while(b > 0){
        Sleep(1000);
        
        b = b-1;
        
        int ostatok = b % 60;       
        int minyte = (b % 3600) / 60;
        int hour = b / 3600;
        
        cout << "ГЋГ±ГІГ*ëîñü: " << hour << " Г·Г*ñîâ, " << minyte << " ìèГ*ГіГІ, " << ostatok << " Г±ГҐГЄГіГ*Г¤! \n";
    }
        
    system("start D:\\aa.mp3");
    
    cout << "ÆåëГ*ГҐГІГҐ ïîâòîðèòü? (1-Г¤Г*, 0-Г*ГҐГІ)    ";
    cin >> r;
    
    if(r = 1){
        goto I;
    }
    
    
}
Здесь я использую goto и найти ему замену не могу. Подскажите нормально ли это.


P.S. Иероглифы возникли при переносе кода в форум.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2016, 08:04
Ответы с готовыми решениями:

Для чего нужен оператор двоеточие, если два двоеточия - это оператор расширения области видимости
для чего нужен оператор двоеточие ( : ), если два двоеточия( :: ) - это...

Возможно ли это заменить циклом?
Здравствуйте! Подскажите, как этот фрагмент, можно заменить циклом? ......

Удвоить числа, если а<b<с, и заменить их абсолютными значениями, если это не так.
Даны действительные числа а, b, с. Удвоить эти числа, если а&lt;b&lt;с, и заменить их...

как можно сделать это? если вообще возможно (не задача)
есть задача, на двумерный массив... вывел массив 5х5 с рандомными числами,...

Рекурсивная программа. Составить пары из группы, если это возможно
Ребят, срочно нужна помощь! Не прошу делать что-то за меня, просто подскажите...

3
sourcerer
Модератор
Эксперт CЭксперт С++
4874 / 2060 / 325
Регистрация: 20.02.2013
Сообщений: 5,558
Записей в блоге: 24
Завершенные тесты: 1
21.01.2016, 08:09 2
Andrewer, на цикл whiile замени:

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
#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <clocale>
 
int main()
{
    using namespace std;
    
    setlocale(0, "");
        
    int hour_start, minyte_start, a, r;
    
    while(r == 1)
    {
        cout << "Õîòèòå èñïîëüçîâГ*ГІГј Г·Г*Г±Г» (åñëè Г*ГҐГІ Г*Г*æìèòå 0 ГЁГ*Г*Г·ГҐ ââåäèòå êîëè÷åñòâî Г·Г*ñîâ)  ";
        cin >> hour_start;
        cout << "Õîòèòå èñïîëüçîâГ*ГІГј ìèГ*ГіГІГ» (åñëè Г*ГҐГІ Г*Г*æìèòå 0 ГЁГ*Г*Г·ГҐ ââåäèòå êîëè÷åñòâî ìèГ*ГіГІ)  ";
        cin >> minyte_start;
        cout << "Õîòèòå èñïîëüçîâГ*ГІГј Г±ГҐГЄГіГ*äû (åñëè Г*ГҐГІ Г*Г*æìèòå 0 ГЁГ*Г*Г·ГҐ ââåäèòå êîë-ГўГ® Г±ГҐГЄГіГ*Г¤)  ";
        cin >> a;
        
        int b = a + (hour_start * 3600) + (minyte_start * 60);
        
        while(b > 0){
            Sleep(1000);
            
            b = b-1;
            
            int ostatok = b % 60;       
            int minyte = (b % 3600) / 60;
            int hour = b / 3600;
            
            cout << "ГЋГ±ГІГ*ëîñü: " << hour << " Г·Г*ñîâ, " << minyte << " ìèГ*ГіГІ, " << ostatok << " Г±ГҐГЄГіГ*Г¤! \n";
        }
            
        system("start D:\\aa.mp3");
        
        cout << "ÆåëГ*ГҐГІГҐ ïîâòîðèòü? (1-Г¤Г*, 0-Г*ГҐГІ)    ";
        cin >> r;
    }
    
    return 0;
}
0
zer0mail
2454 / 2090 / 217
Регистрация: 03.07.2012
Сообщений: 7,583
Записей в блоге: 1
21.01.2016, 08:09 3
Напиши
C++
1
2
3
4
5
6
7
do 
{
....
    cout << "ÆåëГ*ГҐГІГҐ ïîâòîðèòü? (1-Г¤Г*, 0-Г*ГҐГІ)    ";
    cin >> r;
}
while(r==1);
1
sourcerer
Модератор
Эксперт CЭксперт С++
4874 / 2060 / 325
Регистрация: 20.02.2013
Сообщений: 5,558
Записей в блоге: 24
Завершенные тесты: 1
21.01.2016, 09:09 4
zer0mail, точно, r же у него не инициализированна! Благодарю.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2016, 09:09

Даны действительные числа A,B,C. Удвоить эти числа, если A>=B>=C, и заменить их абсолютными значениями, если это не так.
Даны действительные числа A,B,C. Удвоить эти числа, если A&gt;=B&gt;=C, и заменить их...

Удвоить три числа, если X≥Y≥Z, и заменить их абсолютными значениями, если это не так.
Даны три действительных числа X, Y, Z. Удвоить эти числа, если X≥Y≥Z, и...

Дана матрица. Упорядочить ее строки по убыванию первых элементов строк, если это возможно
Доброго времени суток. Помогите написать следующее: &quot;Дана матрица. Упорядочить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru