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

упростить код - C++

Восстановить пароль Регистрация
 
botasa
3 / 3 / 0
Регистрация: 18.01.2011
Сообщений: 131
03.07.2011, 17:22     упростить код #1
есть решена задача, надо упростить, из того перебора в инструкции switch() на enum ( перечисленный тип, мб через рандом но чет не выходит ).
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
// xz.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <ctime>
 
int multiplicatin()
{
    return 1 + rand() % 10;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"");
    srand ( time ( 0 ) );
    //enum Good {FINE, PERFECT, BEST, VERY_GOOD};
    //enum Bad {BAD, NO_reinput, VERY_BAD, I_KILL_YOU};
    //Good goodAnswer;
    //Bad badAnswer;
    int answer;
    cout << "Нажмите ентер для запуску";
    while ( ( answer = cin.get() ) != EOF )
    {
        int a1 = multiplicatin();
        int a2 = multiplicatin();
        int a3 = a1 * a2;
        cout << "Сколько будет " << a1 << " * " << a2 << " ? ";
        cin >> answer;
        if ( answer == a3 )
        {
            int good;
            good = 1 + rand() % 4;
            switch( good )
            {
            case 1 :
                cout << "Очень хорошо!\n";
                break;
            case 2 :
                cout << "Отлично\n";
                break;
            case 3 :
                cout << "Чудесная работа\n";
                break;
            case 4 :
                cout << "Продолжайте работать в том же духе!\n";
                break;
            default :
                cout << "Error\n";
                break;
            }
        }
        else
        while ( answer != a3 )
        {
            cout << "Введите правильный ответ ";
            cin >> answer;
            if ( answer != a3 )
            {
                int bad;
                bad = 1 + rand() % 4;
                switch( bad )
                {
                case 1 :
                    cout << "Нет. Попытайтесь, пожалуйста, снова\n";
                    break;
                case 2 :
                    cout << "Неверно. Попытайтесь еще раз\n";
                    break;
                case 3 :
                    cout << "Не опускайте руки\n";
                    break;
                case 4 :
                    cout << "Нет. Продолжайте вашы попытки!\n";
                    break;
                default :
                    cout << "Error\n";
                    break;
                cin >> answer;
                }
            }
            if ( answer == a3 )
            {
                int good;
                good = 1 + rand() % 4;
                switch( good )
                {
                case 1 :
                    cout << "Очень хорошо!\n";
                    break;
                case 2 :
                    cout << "Отлично\n";
                    break;
                case 3 :
                    cout << "Чудесная работа\n";
                    break;
                case 4 :
                    cout << "Продолжайте работать в том же духе!\n";
                    break;
                default :
                    cout << "Error\n";
                    break;
                }
            }
        }
    }
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2011, 17:22     упростить код
Посмотрите здесь:

C++ Упростить код
Упростить код C++
C++ Упростить код
C++ Упростить код
C++ Как упростить код
Упростить код C++
C++ Упростить код
Упростить код C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
03.07.2011, 18:10     упростить код #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
    
#define ARRAY_ELEMENTS(arr) (sizeof(arr) / sizeof(*arr))
 
int main(void){
    const char * good_answers[] = { "FINE", "PERFECT", "BEST", "VERY GOOD" };
    const char * bad_answers[] = { "BAD", "VERY BAD", "I KILL YOU" };
    
    int op1, op2, answ;
    
    srand(time(NULL));
    
    op1 = 3;
    op2 = 2;
    printf("%d + %d = ", op1, op2);
    scanf("%d", &answ);
    printf("%s!\n", ( answ == op1 + op2 ) ? good_answers[rand() % ARRAY_ELEMENTS(good_answers)] : bad_answers[rand() % ARRAY_ELEMENTS(bad_answers)]);
    
    return 0;
}
Yandex
Объявления
03.07.2011, 18:10     упростить код
Ответ Создать тему
Опции темы

Текущее время: 10:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru