Advertisement
Marisichka

Untitled

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