Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Jevin Olano
- // jolano
- // CSE 101
- // November 9, 2019
- // Arithmetic.c
- #include <stdio.h>
- #include <stdlib.h>
- #include "List.h"
- #include "BigInteger.h"
- int main(int argc, char* argv[]) {
- // Declarations -------------------------------------
- FILE *in, *out; // handlers for input/output files
- char line[256];
- int sizeA = 0;
- int sizeB = 0;
- char* stringA = 0;
- char* stringB = 0;
- // Preliminary --------------------------------------
- // check command line for correct number of arguments
- if (argc != 3) {
- printf("Usage: %s <input> <output>\n", argv[0]);
- exit(1);
- }
- // open input file for reading
- in = fopen(argv[1], "r");
- if (in == NULL) {
- printf("Unable to read from file %s\n", argv[1]);
- exit(1);
- }
- // open output file for writing
- out = fopen(argv[2], "w");
- if (out == NULL) {
- printf("Unable to write to file %s\n", argv[2]);
- exit(1);
- }
- // Arithmetic Operations ----------------------------
- fgets(line, sizeof(line), in); // first line of input
- sscanf(line, "%d", &sizeA);
- fgets(line, sizeof(line), in); // second line of input
- sscanf(line, "%s", &stringA);
- fgets(line, sizeof(line), in); // third line of input
- sscanf(line, "%d", &sizeB);
- fgets(line, sizeof(line), in); // fourth line of input
- sscanf(line, "%s", &stringB);
- BigInteger A = stringToBigInteger(stringA);
- BigInteger B = stringToBigInteger(stringB);
- // print A
- BigInteger answer1 = A;
- printBigInteger(answer1);
- freeBigInteger(answer1);
- fprintf(out, "\n");
- // print B
- BigInteger answer2 = B;
- printBigInteger(answer2);
- freeBigInteger(answer2);
- fprintf(out, "\n");
- // print A + B
- BigInteger answer3 = sum(A, B);
- printBigInteger(answer3);
- free(&answer3)
- fprintf(out, "\n");
- // print A - B
- BigInteger answer4 = diff(A, B);
- printBigInteger(answer4);
- free(&answer4)
- fprintf(out, "\n");
- // print A - A
- BigInteger answer5 = diff(A, A);
- printBigInteger(answer5);
- freeBigInteger(&answer5);
- fprintf(out, "\n");
- // print 3A - 2B
- BigInteger three = stringToBigInteger("3");
- BigInteger two = stringToBigInteger("2");
- BigInteger prodA = prod(A, three);
- BigInteger prodB = prod(B, two);
- BigInteger answer6 = diff(prodA, prodB);
- printBigInteger(answer6);
- freeBigInteger(&three);
- freeBigInteger(&two);
- freeBigInteger(&prodA);
- freeBigInteger(&prodB);
- freeBigInteger(&answer6);
- fprintf(out, "\n");
- // print AB
- BigInteger answer7 = prod(A, B);
- printBigInteger(answer7);
- free(&answer7);
- fprintf(out, "\n");
- // 𝐴,𝐵,𝐴+𝐵,𝐴−𝐵,𝐴−𝐴,3𝐴−2𝐵,𝐴𝐵,𝐴2,𝐵2,9𝐴4 +16𝐵5
- // print A^2
- BigInteger answer8 = prod(A, A);
- printBigInteger(answer8);
- fprintf(out, "\n");
- // print B^2
- BigInteger answer9 = prod(B, B);
- printBigInteger(answer9);
- fprintf(out, "\n");
- // print 9A^4 + 16B^5
- BigInteger fourthPower1 = prod(answer8, answer8);
- BigInteger fourthPower2 = prod(answer9, answer9);
- BigInteger fifthPower = prod(answer9, B);
- BigInteger nine = stringToBigInteger("9");
- BigInteger sixteen = stringToBigInteger("16");
- BigInteger partA = prod(fourthPower1, nine);
- BigInteger partB = prod(fifthPower, sixteen);
- BigInteger answer10 = sum(partA, partB);
- printBigInteger(answer10);
- freeBigInteger(&answer8);
- freeBigInteger(&answer9);
- freeBigInteger(&fourthPower1);
- freeBigInteger(&fourthPower2);
- freeBigInteger(&fifthPower);
- freeBigInteger(&nine);
- freeBigInteger(&sixteen);
- freeBigInteger(&partA);
- freeBigInteger(&partB);
- freeBigInteger(&answer10);
- fprintf(out, "\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement