Vladislav_Bezruk

Some task

Sep 21st, 2021 (edited)
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.29 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;
  10.    
  11.     Number() {
  12.         num = new int[N];
  13.        
  14.         for (int i = 0; i < N; i++) {
  15.             num[i] = 0;
  16.         }
  17.     }
  18.  
  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 init(Number a) {
  38.  
  39.     for (int i = 0; i < N; i++)
  40.         a.num[i] = 0;
  41.  
  42.     return a;
  43. }
  44.  
  45. Number enter() {
  46.     string str;
  47.     int length;
  48.     Number num;
  49.  
  50.     cout << "Enter the number:" << endl;
  51.     cin >> str;
  52.  
  53.     length = str.length();
  54.     for (int i = 0; i < str.length(); i++) {
  55.         num.num[N - str.length() + i] = str[i] - '0';
  56.     }
  57.  
  58.  
  59.     return num;
  60. }
  61. Number sum(Number a, Number b) {
  62.  
  63.     Number c;
  64.  
  65.     for (int i = N - 1; i > 0; i--) {
  66.         c.num[i] = a.num[i] + b.num[i];
  67.  
  68.         if (c.num[i] > 9) {
  69.             c.num[i] = c.num[i] - 10;
  70.             c.num[i - 1] = 1;
  71.         }
  72.     }
  73.  
  74.     return c;
  75. }
  76.  
  77.  
  78. int compare(Number a, Number b) {
  79.  
  80.     for (int i = 0; i < N; i++) {
  81.         if (a.num[i] > b.num[i]) {
  82.             return 1;
  83.         }
  84.         else if (a.num[i] < b.num[i]) {
  85.             return -1;
  86.         }
  87.     }
  88.  
  89.     return 0;
  90. }
  91.  
  92. Number diff(Number a, Number b) {
  93.  
  94.     Number c;
  95.  
  96.     for (int i = N - 1; i > 0; i--) {
  97.         c.num[i] += a.num[i] - b.num[i];
  98.  
  99.         if (c.num[i] < 0) {
  100.             c.num[i] += 10;
  101.             c.num[i - 1] = -1;
  102.         }
  103.     }
  104.  
  105.     output(c);
  106. }
  107.  
  108. int main() {
  109.     int i, j;
  110.     Number a, b, c;
  111.  
  112.     a = enter();
  113.     cout << endl;
  114.  
  115.     b = enter();
  116.     cout << endl;
  117.  
  118.     int comp = compare(a, b);
  119.  
  120.     if (comp == 1) {
  121.         cout << "a > b" << endl;
  122.     }
  123.     else if (comp == 0) {
  124.         cout << "a == b" << endl;
  125.     }
  126.     else if (comp == -1) {
  127.         cout << "a < b" << endl;
  128.     }
  129.  
  130.     cout << endl << "The sum = ";
  131.  
  132.     c = sum(a, b);
  133.  
  134.     output(c);
  135.  
  136.     cout << endl << "The subtraction is = ";
  137.  
  138.     if (comp != -1) {
  139.         c = diff(a, b);
  140.     }
  141.     else {
  142.         cout << "-";
  143.         c = diff(b, a);
  144.     }
  145.    
  146.     cout << endl;
  147.  
  148.     system("pause");
  149.  
  150.     return 0;
  151. }
Add Comment
Please, Sign In to add comment