Marisichka

Untitled

Sep 19th, 2021
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.23 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. #define N 10
  5.  
  6. using namespace std;
  7.  
  8. struct Number {
  9.     int num[N];
  10. };
  11.  
  12. Number init() {
  13.     Number a;
  14.  
  15.     for (int i = 0; i < N; i++)
  16.         a.num[i] = 0;
  17.  
  18.     return a;
  19. }
  20.  
  21. void output(Number a) {
  22.     int i = 0;
  23.  
  24.     while (i < N && a.num[i] == 0)
  25.         i++;
  26.  
  27.     if (i == N)
  28.         cout << "0";
  29.  
  30.     for (i; i < N; i++) {
  31.         cout << a.num[i];
  32.     }
  33.  
  34.     cout << endl;
  35. }
  36.  
  37. Number enter() {
  38.     string str;
  39.     int length;
  40.     Number num = init();
  41.  
  42.     cout << "Enter the number:" << endl;
  43.     cin >> str;
  44.  
  45.     length = str.length();
  46.  
  47.     for (int i = 0; i < str.length(); i++) {
  48.         num.num[N - str.length() + i] = str[i] - '0';
  49.     }
  50.  
  51.     return num;
  52. }
  53.  
  54. Number sum(Number a, Number b) {
  55.     Number c = init();
  56.  
  57.     for (int i = N - 1; i > 0; i--) {
  58.         c.num[i] = a.num[i] + b.num[i];
  59.  
  60.         if (c.num[i] > 9) {
  61.             c.num[i] = c.num[i] - 10;
  62.             c.num[i - 1] = 1;
  63.         }
  64.     }
  65.  
  66.     return c;
  67. }
  68.  
  69. int compare(Number a, Number b) {
  70.     for (int i = 0; i < N; i++) {
  71.         if (a.num[i] > b.num[i]) {
  72.             return 1;
  73.         }
  74.         else if (a.num[i] < b.num[i]) {
  75.             return -1;
  76.         }
  77.     }
  78.  
  79.     return 0;
  80. }
  81.  
  82. Number diff(Number a, Number b) {
  83.     Number c = init();
  84.  
  85.     for (int i = N - 1; i > 0; i--) {
  86.         c.num[i] += a.num[i] - b.num[i];
  87.  
  88.         if (c.num[i] < 0) {
  89.             c.num[i] += 10;
  90.             c.num[i - 1] = -1;
  91.         }
  92.     }
  93.  
  94.     return c;
  95. }
  96.  
  97. int main() {
  98.     int i, j;
  99.  
  100.     Number a;
  101.     Number b;
  102.     Number c;
  103.  
  104.     a = enter();
  105.     cout << endl;
  106.  
  107.     b = enter();
  108.     cout << endl;
  109.  
  110.     int comp = compare(a, b);
  111.  
  112.     if (comp == 1) {
  113.         cout << "a > b" << endl;
  114.     }
  115.     else if (comp == 0) {
  116.         cout << "a == b" << endl;
  117.     }
  118.     else if (comp == -1) {
  119.         cout << "a < b" << endl;
  120.     }
  121.  
  122.     cout << endl << "The sum = ";
  123.  
  124.     c = sum(a, b);
  125.  
  126.     output(c);
  127.  
  128.     cout << endl << "The subtraction is = ";
  129.  
  130.     if (comp != -1) {
  131.         c = diff(a, b);
  132.     }
  133.     else {
  134.         cout << "-";
  135.         c = diff(b, a);
  136.     }
  137.    
  138.     output(c);
  139.     cout << endl;
  140.     system("pause");
  141.  
  142.     return 0;
  143. }
Advertisement
Add Comment
Please, Sign In to add comment