1919// * умножение
2020// * нахождение остатка от деления
2121
22+ // менять знак числа
23+ // менять позицию на разряде
24+
2225#include " HugeInt.h"
2326using namespace std ;
2427
2528int main () {
26- HugeInt a, b, s;
29+ setlocale (LC_ALL, " Russian" );
30+
31+ HugeInt a, b (" 7" ), s;
32+
33+ wcout << L" Введите первое число: " ;
34+ cin >> a;
35+ wcout << L" Введите второе число: " ;
36+ cin >> b;
37+
38+ while (1 ) {
39+ int num;
40+ wcout << L" С каким числом вы хотите работать (0 - a, 1 - b): " << endl;
41+ cin >> num;
42+
43+ wcout << L" Введите что вам нужно сделать:" << endl;
44+ wcout << L" 1 - Менять знак числа" << endl;
45+ wcout << L" 2 - Менять позицию на разряде" << endl;
46+ wcout << L" 0 - Выйти" << endl;
2747
28- a.set (" 1000" );
29- b.set (" 7" );
48+ cout << " >> " ;
49+ int to_do;
50+ cin >> to_do;
51+
52+ switch (to_do) {
53+ case 1 : {
54+ wcout << L" Исходное число: " ;
55+ cout << (num ? b : a) << endl;
56+ (num ? b : a) = -(num ? b : a);
57+ wcout << L" Измененное число: " ;
58+ cout << (num ? b : a) << endl;
59+ break ;
60+ }
61+
62+ case 2 : {
63+ wcout << L" Исходное число: " ;
64+ cout << (num ? b : a) << endl;
65+ wcout << L" Введите индекс и цифру: " ;
66+ int index, digit;
67+ cin >> index >> digit;
68+ (num ? b : a).set_digit (index, digit);
69+ wcout << L" Измененное число: " ;
70+ cout << (num ? b : a) << endl;
71+ break ;
72+ }
73+
74+ case 0 : {
75+ goto end;
76+ }
77+ }
78+ }
79+
80+ end:
81+
82+ // a.set_minus(!a.has_minus()); -- изменение знака
83+ // a.set_digit(1, 2);
84+ // cout << a << " " << a.get_digit(1) << endl;
3085
86+ cout << endl;
3187 if (a.check_zero ()) {
3288 cout << a << " - its zero " << endl;
3389 } else {
@@ -55,18 +111,15 @@ int main() {
55111 cout << " Summ = " << s << endl;
56112
57113 s = -s;
58- cout << s << endl;
114+ cout << " -s = " << s << endl;
59115
60116 // проверка умножения
61- HugeInt test1, test2;
62- test1.set (" 123" );
63- test2.set (" 42" );
64117
65- HugeInt test_mult = test1 * test2 ;
66- cout << " 123 * 42 = " << test_mult << endl;
118+ HugeInt test_mult = a * b ;
119+ cout << " a * b = " << test_mult << endl;
67120
68- HugeInt test_mod = test1 % test2 ;
69- cout << " 123 % 42 = " << test_mod << endl;
121+ HugeInt test_mod = a % b ;
122+ cout << " a % b = " << test_mod << endl;
70123
71124 return 0 ;
72125}
0 commit comments