Advertisement
Pweebs

Untitled

Nov 13th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.74 KB | None | 0 0
  1. // Jevin Olano
  2. // jolano
  3. // CSE 101
  4. // November 9, 2019
  5. // Arithmetic.c
  6.  
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include "List.h"
  10. #include "BigInteger.h"
  11.  
  12. // helper
  13. void readBigInteger(FILE* in, char *dest, int size) {
  14. int i;
  15. for (i = 0; i < size; i++) {
  16. dest[i] = fgetc(in);
  17. }
  18. dest[i] = '\0';
  19. }
  20.  
  21. int main(int argc, char* argv[]) {
  22.  
  23. // Declarations -------------------------------------
  24.  
  25. FILE *in, *out; // handlers for input/output files
  26. char line[256];
  27. char stringA[256];
  28. char stringB[256];
  29. int size = 0;
  30.  
  31. // Preliminary --------------------------------------
  32.  
  33. // check command line for correct number of arguments
  34. if (argc != 3) {
  35. printf("Usage: %s <input> <output>\n", argv[0]);
  36. exit(1);
  37. }
  38.  
  39. // open input file for reading
  40. in = fopen(argv[1], "r");
  41. if (in == NULL) {
  42. printf("Unable to read from file %s\n", argv[1]);
  43. exit(1);
  44. }
  45.  
  46. // open output file for writing
  47. out = fopen(argv[2], "w");
  48. if (out == NULL) {
  49. printf("Unable to write to file %s\n", argv[2]);
  50. exit(1);
  51. }
  52.  
  53. // Arithmetic Operations ----------------------------
  54.  
  55. fgets(line, sizeof(line), in); // 1st and 2nd line of input
  56. sscanf(line, "%d", &size);
  57. readBigInteger(in, stringA, size);
  58.  
  59. fgets(line, sizeof(line), in); // 3rd and 4th line of input
  60. sscanf(line, "%d", &size);
  61. readBigInteger(in, stringB, size);
  62.  
  63. BigInteger A = stringToBigInteger(stringA);
  64. BigInteger B = stringToBigInteger(stringB);
  65.  
  66. // print A
  67. BigInteger answer1 = A;
  68. printBigInteger(out, answer1);
  69. freeBigInteger(&answer1);
  70. fprintf(out, "\n");
  71.  
  72. // print B
  73. BigInteger answer2 = B;
  74. printBigInteger(out, answer2);
  75. freeBigInteger(&answer2);
  76. fprintf(out, "\n");
  77.  
  78. // print A + B
  79. BigInteger answer3 = sum(A, B);
  80. printBigInteger(out, answer3);
  81. free(&answer3);
  82. fprintf(out, "\n");
  83.  
  84. // print A - B
  85. BigInteger answer4 = diff(A, B);
  86. printBigInteger(out, answer4);
  87. free(&answer4);
  88. fprintf(out, "\n");
  89.  
  90. // print A - A
  91. BigInteger answer5 = diff(A, A);
  92. printBigInteger(out, answer5);
  93. freeBigInteger(&answer5);
  94. fprintf(out, "\n");
  95.  
  96. // print 3A - 2B
  97. BigInteger three = stringToBigInteger("3");
  98. BigInteger two = stringToBigInteger("2");
  99. BigInteger prodA = prod(A, three);
  100. BigInteger prodB = prod(B, two);
  101. BigInteger answer6 = diff(prodA, prodB);
  102. printBigInteger(out, answer6);
  103. freeBigInteger(&three);
  104. freeBigInteger(&two);
  105. freeBigInteger(&prodA);
  106. freeBigInteger(&prodB);
  107. freeBigInteger(&answer6);
  108. fprintf(out, "\n");
  109.  
  110. // print AB
  111. BigInteger answer7 = prod(A, B);
  112. printBigInteger(out, answer7);
  113. free(&answer7);
  114. fprintf(out, "\n");
  115.  
  116. // print A^2
  117. BigInteger answer8 = prod(A, A);
  118. printBigInteger(out, answer8);
  119. fprintf(out, "\n");
  120.  
  121. // print B^2
  122. BigInteger answer9 = prod(B, B);
  123. printBigInteger(out, answer9);
  124. fprintf(out, "\n");
  125.  
  126. // print 9A^4 + 16B^5
  127. BigInteger fourthPower1 = prod(answer8, answer8);
  128. BigInteger fourthPower2 = prod(answer9, answer9);
  129. BigInteger fifthPower = prod(answer9, B);
  130. BigInteger nine = stringToBigInteger("9");
  131. BigInteger sixteen = stringToBigInteger("16");
  132. BigInteger partA = prod(fourthPower1, nine);
  133. BigInteger partB = prod(fifthPower, sixteen);
  134. BigInteger answer10 = sum(partA, partB);
  135. printBigInteger(out, answer10);
  136. freeBigInteger(&answer8);
  137. freeBigInteger(&answer9);
  138. freeBigInteger(&fourthPower1);
  139. freeBigInteger(&fourthPower2);
  140. freeBigInteger(&fifthPower);
  141. freeBigInteger(&nine);
  142. freeBigInteger(&sixteen);
  143. freeBigInteger(&partA);
  144. freeBigInteger(&partB);
  145. freeBigInteger(&answer10);
  146. fprintf(out, "\n");
  147.  
  148. return(EXIT_SUCCESS);
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement