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

более компактный код - C++

Восстановить пароль Регистрация
 
user-men
22 / 22 / 8
Регистрация: 17.02.2014
Сообщений: 300
11.03.2014, 00:19     более компактный код #1
нужна замыниты вес то что я написал в функции void n() на более компактный код (суть кода выравнивать столбик

более компактный код

)
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
//Calculator
#include<iostream>
#include<conio.h>
 
using namespace std;
struct XY
{
    int x;
    int y;
    int sum;
    char z;
    char n[4];
}number,in;
void Add_Numbers();
void n();
 
void Input_Output()
{
    cout << "Calculator\n";
    cin >> number.x>>number.z>>number.y;
    system("cls");
}
 
int main(void)
{
    Input_Output();
    switch (number.z)
    {
    case '+':Add_Numbers(); break;
    }
    _getch();
}
 
void Add_Numbers()
{
    number.sum = number.x + number.y;
    in.sum = number.y - number.x;
    n();
    cout << number.z << in.n << number.x << "\n " << number.y << "\n " << number.n << " \n " << number.sum;
}
 
 
 
 
 
void n()
{
    if (number.sum < 9 && number.sum >0)
    {
        number.n[0] = '_';
    }
    if (number.sum < 99 && number.sum>9)
    {
        number.n[0] = '_';
        number.n[1] = '_';
    }
    if (number.sum < 999 && number.sum>99)
    {
        number.n[0] = '_';
        number.n[1] = '_';
        number.n[2] = '_';
    }
    if (number.sum < 9999 && number.sum>999)
    {
        number.n[0] = '_';
        number.n[1] = '_';
        number.n[2] = '_';
        number.n[3] = '_';
    }
    if (number.sum < 99999 && number.sum>9999)
    {
        number.n[0] = '_';
        number.n[1] = '_';
        number.n[2] = '_';
        number.n[3] = '_';
        number.n[4] = '_';
    }
    ///////////////////////////////////////////
 
    if (number.x < 9 && number.x >0)
    {
        if (in.sum < 99 && in.sum>9)
        {
            in.n[0] = ' ';
        }
        if (in.sum < 999 && in.sum>99)
        {
            in.n[0] = ' ';
            in.n[1] = ' ';
        }
        if (in.sum < 9999 && in.sum>999)
        {
            in.n[0] = ' ';
            in.n[1] = ' ';
            in.n[2] = ' ';
        }
        if (in.sum < 99999 && in.sum>9999)
        {
            in.n[0] = ' ';
            in.n[1] = ' ';
            in.n[2] = ' ';
            in.n[3] = ' ';
        }
    }
 
    if (number.x < 99 && number.x >9)
    {
        if (in.sum < 999 && in.sum>99)
        {
            in.n[0] = ' ';
        }
        if (in.sum < 9999 && in.sum>999)
        {
            in.n[0] = ' ';
            in.n[1] = ' ';
        }
        if (in.sum < 99999 && in.sum>9999)
        {
            in.n[0] = ' ';
            in.n[1] = ' ';
            in.n[2] = ' ';
        }
    }
 
    if (number.x < 999 && number.x >99)
    {
            if (in.sum < 9999 && in.sum>999)
            {
                in.n[0] = ' ';
            }
            if (in.sum < 99999 && in.sum>9999)
            {
                in.n[0] = ' ';
                in.n[1] = ' ';
            }
    }
 
    if (number.x < 9999 && number.x >999)
    {
            in.n[0] = ' ';
    }
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2014, 00:19     более компактный код
Посмотрите здесь:

как можно более просто написать эту программку(более понятным языком для начинающего) C++
Как сделать компактный код ? C++
Как можно записать код в более компактном виде? C++
C++ Найти слова, которые состоят из 3х и более букв и имеют более 2х гласных
Можно ли написать этот код более компактно? C++
C++ Код более понятней сделать
Можно ли написать более оптимальный код, используя цикл while? C++
Можно ли написать более оптимальный или простой код, используя цикл for? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
11.03.2014, 01:00     более компактный код #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
void Add_Numbers() {
    number.sum = number.x + number.y;
    in.sum = number.y - number.x;
    std::cout << std::setw( 8 ) << number.x << '\n'
              << "+\n" 
              << std::setw( 8 ) << number.y << '\n' 
              << std::setw( 9 ) << std::setfill( '_' ) << "\n" 
              << std::setw( 8 ) << std::setfill( ' ' ) << number.sum << '\n'<< std::endl;
}
Yandex
Объявления
11.03.2014, 01:00     более компактный код
Ответ Создать тему
Опции темы

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