Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #define N 10
- using namespace std;
- struct Number {
- int* num;
- Number() {
- num = new int[N];
- for (int i = 0; i < N; i++) {
- num[i] = 0;
- }
- }
- };
- void output(Number a) {
- int i = 0;
- while (i < N && a.num[i] == 0)
- i++;
- if (i == N)
- cout << "0";
- for (i; i < N; i++) {
- cout << a.num[i];
- }
- cout << endl;
- }
- Number init(Number a) {
- for (int i = 0; i < N; i++)
- a.num[i] = 0;
- return a;
- }
- Number enter() {
- string str;
- int length;
- Number num;
- cout << "Enter the number:" << endl;
- cin >> str;
- length = str.length();
- for (int i = 0; i < str.length(); i++) {
- num.num[N - str.length() + i] = str[i] - '0';
- }
- return num;
- }
- Number sum(Number a, Number b) {
- Number c;
- for (int i = N - 1; i > 0; i--) {
- c.num[i] = a.num[i] + b.num[i];
- if (c.num[i] > 9) {
- c.num[i] = c.num[i] - 10;
- c.num[i - 1] = 1;
- }
- }
- return c;
- }
- int compare(Number a, Number b) {
- for (int i = 0; i < N; i++) {
- if (a.num[i] > b.num[i]) {
- return 1;
- }
- else if (a.num[i] < b.num[i]) {
- return -1;
- }
- }
- return 0;
- }
- Number diff(Number a, Number b) {
- Number c;
- for (int i = N - 1; i > 0; i--) {
- c.num[i] += a.num[i] - b.num[i];
- if (c.num[i] < 0) {
- c.num[i] += 10;
- c.num[i - 1] = -1;
- }
- }
- output(c);
- }
- int main() {
- int i, j;
- Number a, b, c;
- a = enter();
- cout << endl;
- b = enter();
- cout << endl;
- int comp = compare(a, b);
- if (comp == 1) {
- cout << "a > b" << endl;
- }
- else if (comp == 0) {
- cout << "a == b" << endl;
- }
- else if (comp == -1) {
- cout << "a < b" << endl;
- }
- cout << endl << "The sum = ";
- c = sum(a, b);
- output(c);
- cout << endl << "The subtraction is = ";
- if (comp != -1) {
- c = diff(a, b);
- }
- else {
- cout << "-";
- c = diff(b, a);
- }
- cout << endl;
- system("pause");
- return 0;
- }
Add Comment
Please, Sign In to add comment